<!doctype html>
<html>
  <head>
    <title>微信登录</title>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover"
    />
    <link href="https://res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico" rel="Shortcut Icon" />
    <!-- iframe & 客户端嵌入 -->
    <!--style-->
    <!-- 独立页面 -->
    <!-- 由于文件打包问题，暂时无法按需引入css，所以需要指定独立的命名空间
页面-独立页面：.web_qrcode_type_page_self
页面-webview内嵌：.web_qrcode_type_page_embedded
iframe：.web_qrcode_type_iframe
-->
    <link
      rel="stylesheet"
      href="https://res.wx.qq.com/t/wx_fed/weui-source/res/2.6.21/weui.min.css"
    />
    <!--style-->
    <!--[if IE]>
      <style>
        .weui-vertical-helper {
          height: 100%;
        }
        .web_qrcode_wrp {
          margin-top: -100px;
        }
        .web_qrcode_type_page_self .web_qrcode_app {
          vertical-align: middle;
          margin-top: -0.2em;
        }
      </style>
    <![endif]-->
    <!--[if lt IE 9]>
      <style>
        .web_qrcode_type_page_self .web_qrcode_tips_logo {
          background-image: url('');
        }
        .web_qrcode_type_page_self .web_qrcode_msg_icon_success {
          background-image: url('');
        }
        .web_qrcode_type_page_self .web_qrcode_msg_icon_error {
          background-image: url('');
        }
        .web_qrcode_refresh_btn.web_qrcode_refresh_btn {
          width: 38px;
          height: 38px;
          margin-top: -19px;
          margin-left: -19px;
        }
        .web_qrcode_refresh_icon.web_qrcode_refresh_icon {
          background-image: url('');
        }
        .web_qrcode_img_mask {
          filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#DDFFFFFF', endColorstr='#DDFFFFFF');
        }
      </style>
    <![endif]-->
    <!--  <link rel="stylesheet" href="//res.wx.qq.com/t/wx_fed/mp/connect/res/static/css/6e8b21aa4583af7e697cad9ac7798f76.css"/>-->
    <style>
      body,
      html {
        margin: 0;
        padding: 0;
        height: 100%;
      }

      a {
        outline: 0;
      }

      h1,
      h2,
      h3,
      h4,
      h5,
      h6,
      p {
        margin: 0;
        font-weight: 400;
      }

      a img,
      fieldset {
        border: 0;
      }

      body {
        font-family: Microsoft Yahei;
        color: #fff;
        background: transparent;
      }

      .impowerBox {
        line-height: 1.6;
        position: relative;
        display: inline-block;
        *display: inline;
        *zoom: 1;
        width: 100%;
        vertical-align: middle;
        z-index: 1;
        text-align: center;
      }

      .impowerBox .title {
        text-align: center;
        font-size: 20px;
      }

      .impowerBox .qrcode {
        width: 280px;
        margin-top: 15px;
        border: 1px solid #e2e2e2;
      }

      .impowerBox .info {
        width: 280px;
        margin: 0 auto;
      }

      .impowerBox .status {
        padding: 7px 14px;
        text-align: left;
      }

      .impowerBox .status.normal {
        margin-top: 15px;
        background-color: #232323;
        border-radius: 100px;
        -moz-border-radius: 100px;
        -webkit-border-radius: 100px;
        box-shadow:
          inset 0 5px 10px -5px #191919,
          0 1px 0 0 #444;
        -moz-box-shadow:
          inset 0 5px 10px -5px #191919,
          0 1px 0 0 #444;
        -webkit-box-shadow:
          inset 0 5px 10px -5px #191919,
          0 1px 0 0 #444;
      }

      .impowerBox .status.status_browser {
        text-align: center;
      }

      .impowerBox .status p {
        font-size: 13px;
      }

      .impowerBox .status_txt p {
        top: -2px;
      }

      .impowerBox .status_icon {
        display: inline-block;
        vertical-align: middle;
        margin-right: 5px;
      }

      .impowerBox .status_txt {
        display: inline-block;
        *display: inline;
        *zoom: 1;
        vertical-align: middle;
      }

      .impowerBox .status_txt p {
        position: relative;
        margin: 0;
      }

      .impowerBox .icon38_msg {
        display: inline-block;
        width: 44px;
        height: 44px;
        background-size: cover;
      }

      .impowerBox .icon38_msg.succ {
        background-position: no-repeat;
        background-image: url('');
      }

      .impowerBox .icon38_msg.warn {
        background-position: no-repeat;
        background-image: url('');
      }

      .new-template {
        height: 100%;
      }

      .qrcode-image {
        width: 272px;
        height: 272px;
        margin-top: 44px;
        margin-bottom: 30px;
      }

      .redesign-msg__icon {
        display: inline-block;
        width: 82px;
        height: 82px;
        -webkit-background-size: contain;
        -moz-background-size: contain;
        -o-background-size: contain;
        background-size: contain;
        background-repeat: no-repeat;
        margin-bottom: 28px;
      }

      .redesign-msg__icon_success {
        background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='82' height='82' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M41 81C18.90861 81 1 63.09139 1 41S18.90861 1 41 1s40 17.90861 40 40-17.90861 40-40 40zm0-4.8c19.4404232 0 35.2-15.7595768 35.2-35.2C76.2 21.5595768 60.4404232 5.8 41 5.8 21.5595768 5.8 5.8 21.5595768 5.8 41c0 19.4404232 15.7595768 35.2 35.2 35.2zm-4.6862908-24.9666957L59.5470135 28l3.3941127 3.3941127-23.7989899 23.7989899c-1.5620972 1.5620971-4.0947571 1.5620971-5.6568543 0L21 42.7078205l3.3941127-3.3941127 11.9195965 11.9195965z' fill='%231AAD19' fill-rule='evenodd'/%3e%3c/svg%3e ");
      }

      .redesign-msg__icon_warn {
        background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='82' height='82' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M41 81C18.90861 81 1 63.09139 1 41S18.90861 1 41 1s40 17.90861 40 40-17.90861 40-40 40zm0-4.8c19.4404232 0 35.2-15.7595768 35.2-35.2C76.2 21.5595768 60.4404232 5.8 41 5.8 21.5595768 5.8 5.8 21.5595768 5.8 41c0 19.4404232 15.7595768 35.2 35.2 35.2zm-2.6367188-57.4753906h5.2734376l-.3515626 28.2421875h-4.5703124l-.3515626-28.2421875zM41 61.2929687c-1.875 0-3.3398438-1.4648437-3.3398438-3.3398437 0-1.9042969 1.4648438-3.3398438 3.3398438-3.3398438 1.9042969 0 3.3398438 1.4355469 3.3398438 3.3398438 0 1.875-1.4355469 3.3398437-3.3398438 3.3398437z' fill='%23FA5151' fill-rule='evenodd'/%3e%3c/svg%3e ");
      }

      .redesign-msg {
        text-align: center;
        padding-top: 122px;
        line-height: 1.4;
      }

      .redesign-msg_success h4 {
        color: #1aad19;
      }

      .redesign-msg_warn h4 {
        color: #fa5151;
      }

      .redesign-msg_text h4 {
        font-size: 20px;
        font-weight: 400;
      }

      .redesign-msg_text p {
        margin-top: 15px;
        font-size: 16px;
      }

      .redesign-style_page {
        background-color: #eef0ef;
        position: relative;
        padding-bottom: 36px;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
      }

      .redesign-style_page .redesign-login__area {
        height: 100%;
        position: relative;
        z-index: 9;
      }

      .redesign-style_page .redesign-login__area:after {
        content: ' ';
        display: inline-block;
        vertical-align: middle;
        width: 0;
        height: 100%;
        overflow: hidden;
      }

      .redesign-style_page .redesign-login__wrp {
        display: inline-block;
        vertical-align: middle;
      }

      .redesign-style_page .redesign-login__card {
        width: 340px;
        height: 440px;
        background: #fff;
        -webkit-box-shadow:
          0 0 4px 0 rgba(0, 0, 0, 0.03),
          0 4px 6px 0 rgba(0, 0, 0, 0.04);
        -moz-box-shadow:
          0 0 4px 0 rgba(0, 0, 0, 0.03),
          0 4px 6px 0 rgba(0, 0, 0, 0.04);
        box-shadow:
          0 0 4px 0 rgba(0, 0, 0, 0.03),
          0 4px 6px 0 rgba(0, 0, 0, 0.04);
        -webkit-border-radius: 6px;
        -moz-border-radius: 6px;
        border-radius: 6px;
      }

      .redesign-style_page .wechat-bg {
        background-image: url('');
        -webkit-background-size: cover;
        -moz-background-size: cover;
        -o-background-size: cover;
        background-size: cover;
        background-repeat: no-repeat;
        background-position: bottom;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        top: 0;
        z-index: 1;
      }

      .redesign-style_page .wechat-logo {
        position: absolute;
        top: 100px;
        left: 100px;
        width: 39px;
        height: 31px;
        background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='39' height='31' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M34.1190763 26.7475737c2.3421313-1.6523895 3.8389068-4.0970895 3.8389068-6.8130158 0-4.978079-4.9743051-9.0135053-11.1105043-9.0135053-6.1358856 0-11.1101907 4.0354263-11.1101907 9.0135053 0 4.9780789 4.9743051 9.0136579 11.1101907 9.0136579 1.2677204 0 2.4918559-.1765947 3.6267839-.4943737.103161-.0306789.21275-.0473158.3264153-.0473158.2133771 0 .4071567.0631895.5899618.1660632l2.4322797 1.367121c.0680424.0381579.1335763.0673106.2140042.0673106.2045975 0 .3703136-.1616369.3703136-.3606685 0-.0891368-.0365297-.1782737-.0597331-.2635947-.0141101-.050979-.3135593-1.1387842-.5004406-1.8181474-.0213221-.0763158-.039195-.1498842-.039195-.2298631 0-.2420737.1229153-.4563685.3112077-.5871737zm-10.9752034-8.2552316c-.8179195 0-1.4810975-.6454789-1.4810975-1.4420632 0-.7965842.663178-1.4420631 1.4810975-1.4420631.8185466 0 1.4817246.6454789 1.4817246 1.4420631 0 .7965843-.663178 1.4420632-1.4817246 1.4420632zm7.4072118 0c-.818233 0-1.481411-.6454789-1.481411-1.4420632 0-.7965842.663178-1.4420631 1.481411-1.4420631.8182331 0 1.4810975.6454789 1.4810975 1.4420631 0 .7965843-.6628644 1.4420632-1.4810975 1.4420632zM14.4037203.96993158c6.6515339 0 12.1639068 3.95178421 13.1679238 9.11912632-.2397161-.0116-.4806865-.0189263-.7241653-.0189263-6.7155 0-12.1593602 4.4165473-12.1593602 9.8645789 0 .9188421.1583475 1.8071579.4480763 2.6509053-.2425381.0106842-.4866441.0169421-.7324746.0169421-1.521233 0-2.9902584-.2118526-4.3518898-.5929737-.1240127-.0370895-.25539406-.0570842-.39194914-.0570842-.25602119 0-.48836865.0760105-.70801695.1993368l-2.91845339 1.6404843c-.08136865.0456368-.1603856.0807421-.25680509.0807421-.24567373 0-.44447034-.1936895-.44447034-.4327106 0-.1069947.04358475-.2139894.07180509-.3164052.01677542-.0610527.37595763-1.3665106.6004661-2.1814106.02571186-.0918842.04672034-.1801052.04672034-.2758052 0-.2907632-.1472161-.5479474-.37313559-.7050053-2.81074577-1.9826842-4.60665678-4.9164158-4.60665678-8.1752526 0-5.97384738 5.96922881-10.81654212 13.33238555-10.81654212zM9.95964407 10.0556316c-.98175424 0-1.7775678-.77475792-1.7775678-1.73053686 0-.95593158.79581356-1.73068948 1.7775678-1.73068948.98175423 0 1.77756783.7747579 1.77756783 1.73068948 0 .95577894-.7958136 1.73053686-1.77756783 1.73053686zm8.88846613 0c-.9820678 0-1.7778814-.77475792-1.7778814-1.73053686 0-.95593158.7958136-1.73068948 1.7778814-1.73068948.9815974 0 1.777411.7747579 1.777411 1.73068948 0 .95577894-.7958136 1.73053686-1.777411 1.73053686z' fill='%23000' fill-rule='evenodd' opacity='.1'/%3e%3c/svg%3e");
        -webkit-background-size: contain;
        -moz-background-size: contain;
        -o-background-size: contain;
        background-size: contain;
        z-index: 2;
      }

      .redesign-login__area {
        text-align: center;
        background-color: transparent;
        padding: 0;
        color: #222;
      }

      .redesign-login__title {
        color: #1aad19;
        font-size: 22px;
        margin-bottom: 30px;
        font-weight: 500;
      }

      @media (max-width: 340px) {
        .redesign-style_page .redesign-login__wrp {
          margin-top: 20px;
        }
      }

      @media (max-height: 800px) {
        .redesign-style_page {
          height: auto;
        }

        .redesign-style_page .redesign-login__wrp {
          vertical-align: top;
          margin-top: 170px;
          margin-bottom: 94px;
        }
      }

      .redesign-style_iframe {
        background: #fff;
      }

      .redesign-style_iframe .redesign-msg {
        padding-top: 40px;
      }

      .redesign-style_iframe .qrcode-image {
        margin-top: 0;
        margin-bottom: 12px;
      }

      .redesign-style_iframe .redesign-login__title {
        margin-bottom: 12px;
      }

      .redesign-style_iframe-small .redesign-login__title {
        font-size: 18px;
        margin-bottom: 16px;
      }

      .redesign-style_iframe-small .qrcode-image {
        width: 160px;
        height: 160px;
        margin-bottom: 8px;
      }

      .redesign-style_iframe-small .redesign-msg_text h4 {
        font-size: 16px;
      }

      .redesign-style_iframe-small .redesign-msg {
        padding-top: 20px;
      }

      .redesign-style_iframe-small .redesign-msg .redesign-msg_text h4 {
        font-size: 18px;
      }

      .redesign-style_iframe-small .redesign-msg .redesign-msg_text p {
        margin-top: 10px;
      }

      .redesign-style_iframe-small .redesign-msg__icon {
        margin-bottom: 24px;
      }

      body,
      html {
        height: 100%;
      }

      body .weui-btn:not(.weui-btn_disabled):not(.weui-btn_loading):hover:before,
      body .weui-btn:not([disabled]):not(.weui-btn_loading):hover:before {
        content: '';
      }

      body .weui-btn[disabled].weui-btn_primary,
      body .weui-btn_disabled.weui-btn_primary {
        color: #fff;
        background-color: #07c160;
      }

      .web_qrcode_type_page_self {
        color: #000;
        background: #fff;
        font-family:
          -apple-system,
          BlinkMacSystemFont,
          Helvetica Neue,
          PingFang SC,
          Hiragino Sans GB,
          Microsoft YaHei UI,
          Microsoft YaHei,
          Arial,
          sans-serif;
      }

      .web_qrcode_area {
        height: 100%;
        text-align: center;
      }

      .weui-vertical-helper {
        width: 0;
        height: calc(100% - 100px);
        overflow: hidden;
      }

      .web_qrcode_wrp,
      .weui-vertical-helper {
        display: inline-block;
        vertical-align: middle;
      }

      .web_qrcode_wrp {
        text-align: center;
        line-height: 1.4;
        min-width: 160px;
        max-width: 75%;
        color: #000;
        color: rgba(0, 0, 0, 0.9);
      }

      .web_qrcode_tips {
        margin-right: 10px;
        font-size: 17px;
        font-weight: 400;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
      }

      .web_qrcode_tips_logo {
        display: inline-block;
        vertical-align: bottom;
        font-size: 24px;
        width: 1em;
        height: 1em;
        margin-right: 8px;
        background-size: cover;
        background-repeat: no-repeat;
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24' height='24' viewBox='0 0 24 24'%3E  %3Cdefs%3E    %3Cpath id='0f20791c-6774-4e52-920f-6b6d8404b4dc-a' d='M6.724 0h10.552c2.338 0 3.186.243 4.04.7A4.766 4.766 0 0 1 23.3 2.684c.458.855.701 1.703.701 4.04v10.553c0 2.338-.243 3.186-.7 4.04a4.766 4.766 0 0 1-1.983 1.983c-.855.458-1.703.701-4.04.701H6.723c-2.338 0-3.186-.243-4.04-.7A4.766 4.766 0 0 1 .7 21.316c-.457-.854-.7-1.702-.7-4.039V6.723c0-2.338.243-3.186.7-4.04A4.766 4.766 0 0 1 2.684.7C3.538.243 4.386 0 6.723 0z'/%3E    %3ClinearGradient id='0f20791c-6774-4e52-920f-6b6d8404b4dc-b' x1='50%25' x2='50%25' y1='0%25' y2='100%25'%3E      %3Cstop offset='0%25' stop-color='%2302E36F'/%3E      %3Cstop offset='100%25' stop-color='%2305CD65'/%3E      %3Cstop offset='100%25' stop-color='%2307C160'/%3E    %3C/linearGradient%3E  %3C/defs%3E  %3Cg fill='none' fill-rule='evenodd'%3E    %3Cmask id='0f20791c-6774-4e52-920f-6b6d8404b4dc-c' fill='%23fff'%3E      %3Cuse xlink:href='%230f20791c-6774-4e52-920f-6b6d8404b4dc-a'/%3E    %3C/mask%3E    %3Cpath fill='url(%230f20791c-6774-4e52-920f-6b6d8404b4dc-b)' d='M0 0h24v24H0z' mask='url(%230f20791c-6774-4e52-920f-6b6d8404b4dc-c)'/%3E    %3Cpath fill='%23FFF' d='M19.095 17.63c1.141-.826 1.87-2.05 1.87-3.408 0-2.49-2.423-4.51-5.411-4.51-2.989 0-5.411 2.02-5.411 4.51 0 2.49 2.422 4.51 5.41 4.51.618 0 1.214-.089 1.767-.248a.543.543 0 0 1 .447.06l1.184.683c.033.02.065.034.104.034.1 0 .18-.08.18-.18 0-.045-.017-.09-.028-.132l-.244-.91a.36.36 0 0 1 .132-.409M13.75 13.5a.721.721 0 1 1 0-1.442.721.721 0 0 1 0 1.443M9.493 4.734c3.24 0 5.925 1.977 6.414 4.562a7.206 7.206 0 0 0-.353-.01c-3.27 0-5.922 2.21-5.922 4.936 0 .46.077.904.218 1.326a7.687 7.687 0 0 1-2.476-.288.651.651 0 0 0-.536.071l-1.421.82a.245.245 0 0 1-.125.041.216.216 0 0 1-.217-.216c0-.054.021-.107.035-.158l.292-1.092a.433.433 0 0 0-.159-.49C3.876 13.243 3 11.775 3 10.145c0-2.989 2.907-5.412 6.493-5.412zm7.865 7.323a.721.721 0 1 1 0 1.443.721.721 0 0 1 0-1.443zM7.328 7.548a.866.866 0 1 0 0 1.732.866.866 0 0 0 0-1.732zm4.33 0a.866.866 0 1 0 0 1.731.866.866 0 0 0 0-1.73z' mask='url(%230f20791c-6774-4e52-920f-6b6d8404b4dc-c)'/%3E  %3C/g%3E%3C/svg%3E");
      }

      .web_qrcode_app_wrp {
        font-size: 22px;
        margin-top: 24px;
        margin-bottom: 32px;
        font-weight: 500;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        letter-spacing: 1px;
      }

      .web_qrcode_app {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        word-wrap: normal;
        max-width: 7.32em;
      }

      .web_qrcode_img {
        width: 160px;
        height: 160px;
        border-radius: 4px;
        vertical-align: bottom;
      }

      .web_qrcode_msg_title {
        font-size: 22px;
        font-weight: 500;
        margin-top: 24px;
        letter-spacing: 1px;
      }

      .web_qrcode_msg_desc {
        font-size: 16px;
        margin-top: 8px;
      }

      .web_qrcode_msg_opr {
        margin-top: 24px;
      }

      .web_qrcode_msg_icon {
        display: inline-block;
        vertical-align: bottom;
        font-size: 10px;
        width: 9.6em;
        height: 9.6em;
        background-size: cover;
        background-repeat: no-repeat;
      }

      .web_qrcode_msg_icon_success {
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E  %3Cpath fill='%2307C160' fill-rule='evenodd' d='M48 8c22.091 0 40 17.909 40 40S70.091 88 48 88 8 70.091 8 48 25.909 8 48 8zm17.691 26.16L43.294 56.557 32.23 45.494 28 49.724l12.475 12.484.16.152a4 4 0 0 0 5.497-.15l23.81-23.8-4.251-4.25z'/%3E%3C/svg%3E");
      }

      .web_qrcode_msg_icon_error {
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E  %3Cpath fill='%23FA5151' fill-rule='evenodd' d='M48 8c22.091 0 40 17.909 40 40S70.091 88 48 88 8 70.091 8 48 25.909 8 48 8zm0 4.8c-19.44 0-35.2 15.76-35.2 35.2 0 19.44 15.76 35.2 35.2 35.2 19.44 0 35.2-15.76 35.2-35.2 0-19.44-15.76-35.2-35.2-35.2zm0 48.813c1.904 0 3.34 1.436 3.34 3.34 0 1.875-1.436 3.34-3.34 3.34a3.302 3.302 0 0 1-3.34-3.34c0-1.904 1.465-3.34 3.34-3.34zm2.637-35.888l-.352 28.242h-4.57l-.352-28.242h5.274z'/%3E%3C/svg%3E");
      }

      .web_qrcode_switch_wrp {
        margin-top: 20px;
      }

      .web_qrcode_switch {
        font-size: 14px;
      }

      .qlogin_mod {
        text-align: center;
      }

      .qlogin_mod .web_qrcode_switch_wrp {
        margin-top: 16px;
      }

      .qlogin_user_avatar {
        width: 60px;
        height: 60px;
        border-radius: 6px;
        vertical-align: bottom;
      }

      .qlogin_user_nickname {
        font-size: 14px;
        font-weight: 400;
        display: block;
        margin-top: 8px;
        margin-bottom: 24px;
      }

      .qlogin_btn.qlogin_btn {
        min-width: 132px;
        font-size: 14px;
        font-weight: 400;
        padding: 5px 16px;
        border-radius: 4px;
      }

      .qlogin_authorize_mask,
      .qlogin_toast {
        display: none;
        position: relative;
        z-index: 10;
      }

      .web_qrcode_panel_area .web_qrcode_initial_context,
      .web_qrcode_panel_area .web_qrcode_msg {
        display: inline-block;
        vertical-align: middle;
      }

      .web_qrcode_panel_area .weui-vertical-helper {
        height: 160px;
      }

      .web_qrcode_panel_area .web_qrcode_msg_icon {
        width: 3.8em;
        height: 3.8em;
      }

      .web_qrcode_panel_area .web_qrcode_msg_title {
        font-size: 14px;
        margin-top: 8px;
      }

      .web_qrcode_panel_area .web_qrcode_msg_desc {
        font-size: 12px;
        margin-top: 2px;
      }

      .web_qrcode_panel_area .qlogin_btn.qlogin_btn {
        max-width: 100%;
      }

      .web_qrcode_panel_wrp {
        text-align: center;
      }

      .web_qrcode_img_wrp {
        position: relative;
        display: inline-block;
      }

      .web_qrcode_refresh_btn {
        position: absolute;
        left: 50%;
        top: 80px;
        font-size: 38px;
        width: 1em;
        height: 1em;
        margin-left: -0.5em;
        margin-top: -0.5em;
        z-index: 1;
      }

      .web_qrcode_refresh_icon {
        display: inline-block;
        vertical-align: top;
        font-size: inherit;
        width: 100%;
        height: 100%;
        background-size: cover;
        background-repeat: no-repeat;
        background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.5947 4.00896L10 2.41421L11.4142 1L15.3033 4.88909C15.4986 5.08435 15.4986 5.40093 15.3033 5.59619L11.4142 9.48528L10 8.07107L12.0707 6.00035C12.0472 6.00012 12.0236 6 12 6C8.13401 6 5 9.13401 5 13C5 16.866 8.13401 20 12 20C15.866 20 19 16.866 19 13C19 11.068 18.2173 9.3188 16.9517 8.05221L18.3659 6.63799C19.9934 8.26652 21 10.5157 21 13C21 17.9706 16.9706 22 12 22C7.02944 22 3 17.9706 3 13C3 8.16524 6.81226 4.22089 11.5947 4.00896Z' fill='black' style='fill:black;fill-opacity:.55;'/%3E%3C/svg%3E%0A");
      }

      .web_qrcode_refresh_loading {
        position: absolute;
        left: 50%;
        top: 80px;
        font-size: 32px;
        margin-left: -0.5em;
        margin-top: -0.5em;
        z-index: 1;
      }

      .web_qrcode_img_mask {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: hsla(0, 0%, 100%, 0.8);
        backdrop-filter: blur(3px);
        border-radius: 4px;
      }

      @media (prefers-color-scheme: dark) {
        .web_qrcode_type_page_self {
          background: #191919;
        }

        .web_qrcode_wrp {
          color: #fff;
          color: hsla(0, 0%, 100%, 0.8);
        }
      }
      body,
      html {
        margin: 0;
        padding: 0;
        height: 100%;
      }

      a {
        outline: 0;
      }

      h1,
      h2,
      h3,
      h4,
      h5,
      h6,
      p {
        margin: 0;
        font-weight: 400;
      }

      a img,
      fieldset {
        border: 0;
      }

      body {
        font-family: Microsoft Yahei;
        color: #fff;
        background: transparent;
      }

      .impowerBox {
        line-height: 1.6;
        position: relative;
        display: inline-block;
        *display: inline;
        *zoom: 1;
        width: 100%;
        vertical-align: middle;
        z-index: 1;
        text-align: center;
      }

      .impowerBox .title {
        text-align: center;
        font-size: 20px;
      }

      .impowerBox .qrcode {
        width: 280px;
        margin-top: 15px;
        border: 1px solid #e2e2e2;
      }

      .impowerBox .info {
        width: 280px;
        margin: 0 auto;
      }

      .impowerBox .status {
        padding: 7px 14px;
        text-align: left;
      }

      .impowerBox .status.normal {
        margin-top: 15px;
        background-color: #232323;
        border-radius: 100px;
        -moz-border-radius: 100px;
        -webkit-border-radius: 100px;
        box-shadow:
          inset 0 5px 10px -5px #191919,
          0 1px 0 0 #444;
        -moz-box-shadow:
          inset 0 5px 10px -5px #191919,
          0 1px 0 0 #444;
        -webkit-box-shadow:
          inset 0 5px 10px -5px #191919,
          0 1px 0 0 #444;
      }

      .impowerBox .status.status_browser {
        text-align: center;
      }

      .impowerBox .status p {
        font-size: 13px;
      }

      .impowerBox .status_txt p {
        top: -2px;
      }

      .impowerBox .status_icon {
        display: inline-block;
        vertical-align: middle;
        margin-right: 5px;
      }

      .impowerBox .status_txt {
        display: inline-block;
        *display: inline;
        *zoom: 1;
        vertical-align: middle;
      }

      .impowerBox .status_txt p {
        position: relative;
        margin: 0;
      }

      .impowerBox .icon38_msg {
        display: inline-block;
        width: 44px;
        height: 44px;
        background-size: cover;
      }

      .impowerBox .icon38_msg.succ {
        background-position: no-repeat;
        background-image: url('');
      }

      .impowerBox .icon38_msg.warn {
        background-position: no-repeat;
        background-image: url('');
      }

      .new-template {
        height: 100%;
      }

      .qrcode-image {
        width: 272px;
        height: 272px;
        margin-top: 44px;
        margin-bottom: 30px;
      }

      .redesign-msg__icon {
        display: inline-block;
        width: 82px;
        height: 82px;
        -webkit-background-size: contain;
        -moz-background-size: contain;
        -o-background-size: contain;
        background-size: contain;
        background-repeat: no-repeat;
        margin-bottom: 28px;
      }

      .redesign-msg__icon_success {
        background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='82' height='82' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M41 81C18.90861 81 1 63.09139 1 41S18.90861 1 41 1s40 17.90861 40 40-17.90861 40-40 40zm0-4.8c19.4404232 0 35.2-15.7595768 35.2-35.2C76.2 21.5595768 60.4404232 5.8 41 5.8 21.5595768 5.8 5.8 21.5595768 5.8 41c0 19.4404232 15.7595768 35.2 35.2 35.2zm-4.6862908-24.9666957L59.5470135 28l3.3941127 3.3941127-23.7989899 23.7989899c-1.5620972 1.5620971-4.0947571 1.5620971-5.6568543 0L21 42.7078205l3.3941127-3.3941127 11.9195965 11.9195965z' fill='%231AAD19' fill-rule='evenodd'/%3e%3c/svg%3e ");
      }

      .redesign-msg__icon_warn {
        background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='82' height='82' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M41 81C18.90861 81 1 63.09139 1 41S18.90861 1 41 1s40 17.90861 40 40-17.90861 40-40 40zm0-4.8c19.4404232 0 35.2-15.7595768 35.2-35.2C76.2 21.5595768 60.4404232 5.8 41 5.8 21.5595768 5.8 5.8 21.5595768 5.8 41c0 19.4404232 15.7595768 35.2 35.2 35.2zm-2.6367188-57.4753906h5.2734376l-.3515626 28.2421875h-4.5703124l-.3515626-28.2421875zM41 61.2929687c-1.875 0-3.3398438-1.4648437-3.3398438-3.3398437 0-1.9042969 1.4648438-3.3398438 3.3398438-3.3398438 1.9042969 0 3.3398438 1.4355469 3.3398438 3.3398438 0 1.875-1.4355469 3.3398437-3.3398438 3.3398437z' fill='%23FA5151' fill-rule='evenodd'/%3e%3c/svg%3e ");
      }

      .redesign-msg {
        text-align: center;
        padding-top: 122px;
        line-height: 1.4;
      }

      .redesign-msg_success h4 {
        color: #1aad19;
      }

      .redesign-msg_warn h4 {
        color: #fa5151;
      }

      .redesign-msg_text h4 {
        font-size: 20px;
        font-weight: 400;
      }

      .redesign-msg_text p {
        margin-top: 15px;
        font-size: 16px;
      }

      .redesign-style_page {
        background-color: #eef0ef;
        position: relative;
        padding-bottom: 36px;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
      }

      .redesign-style_page .redesign-login__area {
        height: 100%;
        position: relative;
        z-index: 9;
      }

      .redesign-style_page .redesign-login__area:after {
        content: ' ';
        display: inline-block;
        vertical-align: middle;
        width: 0;
        height: 100%;
        overflow: hidden;
      }

      .redesign-style_page .redesign-login__wrp {
        display: inline-block;
        vertical-align: middle;
      }

      .redesign-style_page .redesign-login__card {
        width: 340px;
        height: 440px;
        background: #fff;
        -webkit-box-shadow:
          0 0 4px 0 rgba(0, 0, 0, 0.03),
          0 4px 6px 0 rgba(0, 0, 0, 0.04);
        -moz-box-shadow:
          0 0 4px 0 rgba(0, 0, 0, 0.03),
          0 4px 6px 0 rgba(0, 0, 0, 0.04);
        box-shadow:
          0 0 4px 0 rgba(0, 0, 0, 0.03),
          0 4px 6px 0 rgba(0, 0, 0, 0.04);
        -webkit-border-radius: 6px;
        -moz-border-radius: 6px;
        border-radius: 6px;
      }

      .redesign-style_page .wechat-bg {
        background-image: url('');
        -webkit-background-size: cover;
        -moz-background-size: cover;
        -o-background-size: cover;
        background-size: cover;
        background-repeat: no-repeat;
        background-position: bottom;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        top: 0;
        z-index: 1;
      }

      .redesign-style_page .wechat-logo {
        position: absolute;
        top: 100px;
        left: 100px;
        width: 39px;
        height: 31px;
        background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='39' height='31' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M34.1190763 26.7475737c2.3421313-1.6523895 3.8389068-4.0970895 3.8389068-6.8130158 0-4.978079-4.9743051-9.0135053-11.1105043-9.0135053-6.1358856 0-11.1101907 4.0354263-11.1101907 9.0135053 0 4.9780789 4.9743051 9.0136579 11.1101907 9.0136579 1.2677204 0 2.4918559-.1765947 3.6267839-.4943737.103161-.0306789.21275-.0473158.3264153-.0473158.2133771 0 .4071567.0631895.5899618.1660632l2.4322797 1.367121c.0680424.0381579.1335763.0673106.2140042.0673106.2045975 0 .3703136-.1616369.3703136-.3606685 0-.0891368-.0365297-.1782737-.0597331-.2635947-.0141101-.050979-.3135593-1.1387842-.5004406-1.8181474-.0213221-.0763158-.039195-.1498842-.039195-.2298631 0-.2420737.1229153-.4563685.3112077-.5871737zm-10.9752034-8.2552316c-.8179195 0-1.4810975-.6454789-1.4810975-1.4420632 0-.7965842.663178-1.4420631 1.4810975-1.4420631.8185466 0 1.4817246.6454789 1.4817246 1.4420631 0 .7965843-.663178 1.4420632-1.4817246 1.4420632zm7.4072118 0c-.818233 0-1.481411-.6454789-1.481411-1.4420632 0-.7965842.663178-1.4420631 1.481411-1.4420631.8182331 0 1.4810975.6454789 1.4810975 1.4420631 0 .7965843-.6628644 1.4420632-1.4810975 1.4420632zM14.4037203.96993158c6.6515339 0 12.1639068 3.95178421 13.1679238 9.11912632-.2397161-.0116-.4806865-.0189263-.7241653-.0189263-6.7155 0-12.1593602 4.4165473-12.1593602 9.8645789 0 .9188421.1583475 1.8071579.4480763 2.6509053-.2425381.0106842-.4866441.0169421-.7324746.0169421-1.521233 0-2.9902584-.2118526-4.3518898-.5929737-.1240127-.0370895-.25539406-.0570842-.39194914-.0570842-.25602119 0-.48836865.0760105-.70801695.1993368l-2.91845339 1.6404843c-.08136865.0456368-.1603856.0807421-.25680509.0807421-.24567373 0-.44447034-.1936895-.44447034-.4327106 0-.1069947.04358475-.2139894.07180509-.3164052.01677542-.0610527.37595763-1.3665106.6004661-2.1814106.02571186-.0918842.04672034-.1801052.04672034-.2758052 0-.2907632-.1472161-.5479474-.37313559-.7050053-2.81074577-1.9826842-4.60665678-4.9164158-4.60665678-8.1752526 0-5.97384738 5.96922881-10.81654212 13.33238555-10.81654212zM9.95964407 10.0556316c-.98175424 0-1.7775678-.77475792-1.7775678-1.73053686 0-.95593158.79581356-1.73068948 1.7775678-1.73068948.98175423 0 1.77756783.7747579 1.77756783 1.73068948 0 .95577894-.7958136 1.73053686-1.77756783 1.73053686zm8.88846613 0c-.9820678 0-1.7778814-.77475792-1.7778814-1.73053686 0-.95593158.7958136-1.73068948 1.7778814-1.73068948.9815974 0 1.777411.7747579 1.777411 1.73068948 0 .95577894-.7958136 1.73053686-1.777411 1.73053686z' fill='%23000' fill-rule='evenodd' opacity='.1'/%3e%3c/svg%3e");
        -webkit-background-size: contain;
        -moz-background-size: contain;
        -o-background-size: contain;
        background-size: contain;
        z-index: 2;
      }

      .redesign-login__area {
        text-align: center;
        background-color: transparent;
        padding: 0;
        color: #222;
      }

      .redesign-login__title {
        color: #1aad19;
        font-size: 22px;
        margin-bottom: 30px;
        font-weight: 500;
      }

      @media (max-width: 340px) {
        .redesign-style_page .redesign-login__wrp {
          margin-top: 20px;
        }
      }

      @media (max-height: 800px) {
        .redesign-style_page {
          height: auto;
        }

        .redesign-style_page .redesign-login__wrp {
          vertical-align: top;
          margin-top: 170px;
          margin-bottom: 94px;
        }
      }

      .redesign-style_iframe {
        background: #fff;
      }

      .redesign-style_iframe .redesign-msg {
        padding-top: 40px;
      }

      .redesign-style_iframe .qrcode-image {
        margin-top: 0;
        margin-bottom: 12px;
      }

      .redesign-style_iframe .redesign-login__title {
        margin-bottom: 12px;
      }

      .redesign-style_iframe-small .redesign-login__title {
        font-size: 18px;
        margin-bottom: 16px;
      }

      .redesign-style_iframe-small .qrcode-image {
        width: 160px;
        height: 160px;
        margin-bottom: 8px;
      }

      .redesign-style_iframe-small .redesign-msg_text h4 {
        font-size: 16px;
      }

      .redesign-style_iframe-small .redesign-msg {
        padding-top: 20px;
      }

      .redesign-style_iframe-small .redesign-msg .redesign-msg_text h4 {
        font-size: 18px;
      }

      .redesign-style_iframe-small .redesign-msg .redesign-msg_text p {
        margin-top: 10px;
      }

      .redesign-style_iframe-small .redesign-msg__icon {
        margin-bottom: 24px;
      }

      body,
      html {
        height: 100%;
      }

      body .weui-btn:not(.weui-btn_disabled):not(.weui-btn_loading):hover:before,
      body .weui-btn:not([disabled]):not(.weui-btn_loading):hover:before {
        content: '';
      }

      body .weui-btn[disabled].weui-btn_primary,
      body .weui-btn_disabled.weui-btn_primary {
        color: #fff;
        background-color: #07c160;
      }

      .web_qrcode_type_page_self {
        color: #000;
        background: #fff;
        font-family:
          -apple-system,
          BlinkMacSystemFont,
          Helvetica Neue,
          PingFang SC,
          Hiragino Sans GB,
          Microsoft YaHei UI,
          Microsoft YaHei,
          Arial,
          sans-serif;
      }

      .web_qrcode_area {
        height: 100%;
        text-align: center;
      }

      .weui-vertical-helper {
        width: 0;
        height: calc(100% - 100px);
        overflow: hidden;
      }

      .web_qrcode_wrp,
      .weui-vertical-helper {
        display: inline-block;
        vertical-align: middle;
      }

      .web_qrcode_wrp {
        text-align: center;
        line-height: 1.4;
        min-width: 160px;
        max-width: 75%;
        color: #000;
        color: rgba(0, 0, 0, 0.9);
      }

      .web_qrcode_tips {
        margin-right: 10px;
        font-size: 17px;
        font-weight: 400;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
      }

      .web_qrcode_tips_logo {
        display: inline-block;
        vertical-align: bottom;
        font-size: 24px;
        width: 1em;
        height: 1em;
        margin-right: 8px;
        background-size: cover;
        background-repeat: no-repeat;
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24' height='24' viewBox='0 0 24 24'%3E  %3Cdefs%3E    %3Cpath id='0f20791c-6774-4e52-920f-6b6d8404b4dc-a' d='M6.724 0h10.552c2.338 0 3.186.243 4.04.7A4.766 4.766 0 0 1 23.3 2.684c.458.855.701 1.703.701 4.04v10.553c0 2.338-.243 3.186-.7 4.04a4.766 4.766 0 0 1-1.983 1.983c-.855.458-1.703.701-4.04.701H6.723c-2.338 0-3.186-.243-4.04-.7A4.766 4.766 0 0 1 .7 21.316c-.457-.854-.7-1.702-.7-4.039V6.723c0-2.338.243-3.186.7-4.04A4.766 4.766 0 0 1 2.684.7C3.538.243 4.386 0 6.723 0z'/%3E    %3ClinearGradient id='0f20791c-6774-4e52-920f-6b6d8404b4dc-b' x1='50%25' x2='50%25' y1='0%25' y2='100%25'%3E      %3Cstop offset='0%25' stop-color='%2302E36F'/%3E      %3Cstop offset='100%25' stop-color='%2305CD65'/%3E      %3Cstop offset='100%25' stop-color='%2307C160'/%3E    %3C/linearGradient%3E  %3C/defs%3E  %3Cg fill='none' fill-rule='evenodd'%3E    %3Cmask id='0f20791c-6774-4e52-920f-6b6d8404b4dc-c' fill='%23fff'%3E      %3Cuse xlink:href='%230f20791c-6774-4e52-920f-6b6d8404b4dc-a'/%3E    %3C/mask%3E    %3Cpath fill='url(%230f20791c-6774-4e52-920f-6b6d8404b4dc-b)' d='M0 0h24v24H0z' mask='url(%230f20791c-6774-4e52-920f-6b6d8404b4dc-c)'/%3E    %3Cpath fill='%23FFF' d='M19.095 17.63c1.141-.826 1.87-2.05 1.87-3.408 0-2.49-2.423-4.51-5.411-4.51-2.989 0-5.411 2.02-5.411 4.51 0 2.49 2.422 4.51 5.41 4.51.618 0 1.214-.089 1.767-.248a.543.543 0 0 1 .447.06l1.184.683c.033.02.065.034.104.034.1 0 .18-.08.18-.18 0-.045-.017-.09-.028-.132l-.244-.91a.36.36 0 0 1 .132-.409M13.75 13.5a.721.721 0 1 1 0-1.442.721.721 0 0 1 0 1.443M9.493 4.734c3.24 0 5.925 1.977 6.414 4.562a7.206 7.206 0 0 0-.353-.01c-3.27 0-5.922 2.21-5.922 4.936 0 .46.077.904.218 1.326a7.687 7.687 0 0 1-2.476-.288.651.651 0 0 0-.536.071l-1.421.82a.245.245 0 0 1-.125.041.216.216 0 0 1-.217-.216c0-.054.021-.107.035-.158l.292-1.092a.433.433 0 0 0-.159-.49C3.876 13.243 3 11.775 3 10.145c0-2.989 2.907-5.412 6.493-5.412zm7.865 7.323a.721.721 0 1 1 0 1.443.721.721 0 0 1 0-1.443zM7.328 7.548a.866.866 0 1 0 0 1.732.866.866 0 0 0 0-1.732zm4.33 0a.866.866 0 1 0 0 1.731.866.866 0 0 0 0-1.73z' mask='url(%230f20791c-6774-4e52-920f-6b6d8404b4dc-c)'/%3E  %3C/g%3E%3C/svg%3E");
      }

      .web_qrcode_app_wrp {
        font-size: 22px;
        margin-top: 24px;
        margin-bottom: 32px;
        font-weight: 500;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        letter-spacing: 1px;
      }

      .web_qrcode_app {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        word-wrap: normal;
        max-width: 7.32em;
      }

      .web_qrcode_img {
        width: 160px;
        height: 160px;
        border-radius: 4px;
        vertical-align: bottom;
      }

      .web_qrcode_msg_title {
        font-size: 22px;
        font-weight: 500;
        margin-top: 24px;
        letter-spacing: 1px;
      }

      .web_qrcode_msg_desc {
        font-size: 16px;
        margin-top: 8px;
      }

      .web_qrcode_msg_opr {
        margin-top: 24px;
      }

      .web_qrcode_msg_icon {
        display: inline-block;
        vertical-align: bottom;
        font-size: 10px;
        width: 9.6em;
        height: 9.6em;
        background-size: cover;
        background-repeat: no-repeat;
      }

      .web_qrcode_msg_icon_success {
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E  %3Cpath fill='%2307C160' fill-rule='evenodd' d='M48 8c22.091 0 40 17.909 40 40S70.091 88 48 88 8 70.091 8 48 25.909 8 48 8zm17.691 26.16L43.294 56.557 32.23 45.494 28 49.724l12.475 12.484.16.152a4 4 0 0 0 5.497-.15l23.81-23.8-4.251-4.25z'/%3E%3C/svg%3E");
      }

      .web_qrcode_msg_icon_error {
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E  %3Cpath fill='%23FA5151' fill-rule='evenodd' d='M48 8c22.091 0 40 17.909 40 40S70.091 88 48 88 8 70.091 8 48 25.909 8 48 8zm0 4.8c-19.44 0-35.2 15.76-35.2 35.2 0 19.44 15.76 35.2 35.2 35.2 19.44 0 35.2-15.76 35.2-35.2 0-19.44-15.76-35.2-35.2-35.2zm0 48.813c1.904 0 3.34 1.436 3.34 3.34 0 1.875-1.436 3.34-3.34 3.34a3.302 3.302 0 0 1-3.34-3.34c0-1.904 1.465-3.34 3.34-3.34zm2.637-35.888l-.352 28.242h-4.57l-.352-28.242h5.274z'/%3E%3C/svg%3E");
      }

      .web_qrcode_switch_wrp {
        margin-top: 20px;
      }

      .web_qrcode_switch {
        font-size: 14px;
      }

      .qlogin_mod {
        text-align: center;
      }

      .qlogin_mod .web_qrcode_switch_wrp {
        margin-top: 16px;
      }

      .qlogin_user_avatar {
        width: 60px;
        height: 60px;
        border-radius: 6px;
        vertical-align: bottom;
      }

      .qlogin_user_nickname {
        font-size: 14px;
        font-weight: 400;
        display: block;
        margin-top: 8px;
        margin-bottom: 24px;
      }

      .qlogin_btn.qlogin_btn {
        min-width: 132px;
        font-size: 14px;
        font-weight: 400;
        padding: 5px 16px;
        border-radius: 4px;
      }

      .qlogin_authorize_mask,
      .qlogin_toast {
        display: none;
        position: relative;
        z-index: 10;
      }

      .web_qrcode_panel_area .web_qrcode_initial_context,
      .web_qrcode_panel_area .web_qrcode_msg {
        display: inline-block;
        vertical-align: middle;
      }

      .web_qrcode_panel_area .weui-vertical-helper {
        height: 160px;
      }

      .web_qrcode_panel_area .web_qrcode_msg_icon {
        width: 3.8em;
        height: 3.8em;
      }

      .web_qrcode_panel_area .web_qrcode_msg_title {
        font-size: 14px;
        margin-top: 8px;
      }

      .web_qrcode_panel_area .web_qrcode_msg_desc {
        font-size: 12px;
        margin-top: 2px;
      }

      .web_qrcode_panel_area .qlogin_btn.qlogin_btn {
        max-width: 100%;
      }

      .web_qrcode_panel_wrp {
        text-align: center;
      }

      .web_qrcode_img_wrp {
        position: relative;
        display: inline-block;
      }

      .web_qrcode_refresh_btn {
        position: absolute;
        left: 50%;
        top: 80px;
        font-size: 38px;
        width: 1em;
        height: 1em;
        margin-left: -0.5em;
        margin-top: -0.5em;
        z-index: 1;
      }

      .web_qrcode_refresh_icon {
        display: inline-block;
        vertical-align: top;
        font-size: inherit;
        width: 100%;
        height: 100%;
        background-size: cover;
        background-repeat: no-repeat;
        background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.5947 4.00896L10 2.41421L11.4142 1L15.3033 4.88909C15.4986 5.08435 15.4986 5.40093 15.3033 5.59619L11.4142 9.48528L10 8.07107L12.0707 6.00035C12.0472 6.00012 12.0236 6 12 6C8.13401 6 5 9.13401 5 13C5 16.866 8.13401 20 12 20C15.866 20 19 16.866 19 13C19 11.068 18.2173 9.3188 16.9517 8.05221L18.3659 6.63799C19.9934 8.26652 21 10.5157 21 13C21 17.9706 16.9706 22 12 22C7.02944 22 3 17.9706 3 13C3 8.16524 6.81226 4.22089 11.5947 4.00896Z' fill='black' style='fill:black;fill-opacity:.55;'/%3E%3C/svg%3E%0A");
      }

      .web_qrcode_refresh_loading {
        position: absolute;
        left: 50%;
        top: 80px;
        font-size: 32px;
        margin-left: -0.5em;
        margin-top: -0.5em;
        z-index: 1;
      }

      .web_qrcode_img_mask {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: hsla(0, 0%, 100%, 0.8);
        backdrop-filter: blur(3px);
        border-radius: 4px;
      }

      @media (prefers-color-scheme: dark) {
        .web_qrcode_type_page_self {
          background: #191919;
        }

        .web_qrcode_wrp {
          color: #fff;
          color: hsla(0, 0%, 100%, 0.8);
        }
      }
    </style>
  </head>
  <body>
    <!-- 独立页面 -->
    <div id="tpl_for_page" class="web_qrcode_area" style="display: none">
      <span class="web_qrcode_wrp">
        <!-- 默认 -->
        <div class="web_qrcode_initial_context js_status js_wx_default_tip">
          <div class="web_qrcode_tips js_web_qrcode_tips_normal">
            <i class="web_qrcode_tips_logo"></i>
            使用微信扫一扫登录
          </div>
          <div class="web_qrcode_tips js_web_qrcode_tips_fast" style="display: none">
            <i class="web_qrcode_tips_logo"></i>
            使用微信快捷登录
          </div>
          <div class="web_qrcode_app_wrp">
            「<strong class="web_qrcode_app">滨建培训</strong>
            」
          </div>
          <!-- 普通登录 -->
          <div class="js_normal_login web_qrcode_img_area">
            <div class="web_qrcode_img_wrp">
              <img class="js_qrcode_img web_qrcode_img" src="/connect/qrcode/031fqpo71PMYll2o" />
              <button
                style="display: none"
                type="button"
                class="weui-btn_reset web_qrcode_refresh_btn js_refresh_qrcode"
                title="刷新"
              >
                <i class="web_qrcode_refresh_icon"></i>
              </button>
              <i
                style="display: none"
                class="weui-loading js_refresh_qrcode_loading web_qrcode_refresh_loading"
              ></i>
              <div style="display: none" class="web_qrcode_img_mask js_refresh_qrcode_mask"></div>
            </div>
            <div class="web_qrcode_switch_wrp js_switchToFast_wrp" style="display: none">
              <button
                type="button"
                class="weui-btn_reset weui-link js_switchToFast web_qrcode_switch"
                >快捷登录</button
              >
            </div>
          </div>
          <!-- 快捷登录 -->
          <div class="js_quick_login" style="display: none">
            <div class="qlogin_mod">
              <img
                src="https://res.wx.qq.com/t/fed_upload/937b4aa0-2cc5-42ec-81d7-e641da427fff/avatar_default.svg"
                alt=""
                class="js_quick_login_avatar qlogin_user_avatar"
              />
              <div class="js_quick_login_nickname qlogin_user_nickname">('微信用户')</div>
              <button class="weui-btn weui-btn_primary js_quick_login_btn qlogin_btn" type="button"
                >微信快捷登录</button
              >
              <div class="qlogin_msg js_quick_login_msg" style="display: none">登录中...</div>
              <div class="web_qrcode_switch_wrp js_switchToNormal_wrp">
                <button
                  type="button"
                  class="weui-btn_reset weui-link js_switchToNormal web_qrcode_switch"
                  >使用其他头像、昵称或账号</button
                >
              </div>
            </div>
          </div>
        </div>
        <!-- 扫码成功 -->
        <div class="web_qrcode_msg js_status js_wx_after_scan" style="display: none">
          <i class="web_qrcode_msg_icon web_qrcode_msg_icon_success"></i>
          <h1 class="web_qrcode_msg_title">扫描成功</h1>
          <p class="web_qrcode_msg_desc">在微信中轻触允许即可登录</p>
        </div>
        <!-- 取消登录 -->
        <div class="web_qrcode_msg js_status js_wx_after_cancel" style="display: none">
          <i class="web_qrcode_msg_icon web_qrcode_msg_icon_error"></i>
          <h1 class="web_qrcode_msg_title">你已取消此次登录</h1>
          <div class="web_qrcode_msg_opr">
            <a href="javascript:;" class="weui-btn weui-btn_primary js_web_qrcode_reload">重试</a>
          </div>
        </div>
      </span>
      <span class="weui-vertical-helper"></span>
    </div>
    <!-- iframe、内嵌webview -->
    <div id="tpl_for_iframe" class="web_qrcode_panel_area" style="display: none">
      <!-- 普通登录 -->
      <div class="js_normal_login web_qrcode_panel_normal_login">
        <!-- 旧版UI -->
        <div class="old-template" id="tpl_old_iframe">
          <div class="main impowerBox">
            <div class="loginPanel normalPanel">
              <div class="title">微信登录</div>
              <div class="waiting panelContent">
                <div class="wrp_code">
                  <img
                    class="qrcode lightBorder js_qrcode_img"
                    src="/connect/qrcode/031fqpo71PMYll2o"
                  />
                </div>
                <div class="info">
                  <div
                    class="status status_browser js_status js_wx_default_tip"
                    id="wx_default_tip"
                  >
                    <p>使用微信扫一扫登录</p>
                    <p>“滨建培训”</p>
                  </div>
                  <div
                    class="status status_succ js_status js_wx_after_scan"
                    style="display: none"
                    id="wx_after_scan"
                  >
                    <i class="status_icon icon38_msg succ"></i>
                    <div class="status_txt">
                      <h4>扫描成功</h4>
                      <p>在微信中轻触允许即可登录</p>
                    </div>
                  </div>
                  <div
                    class="status status_fail js_status js_wx_after_cancel"
                    style="display: none"
                    id="wx_after_cancel"
                  >
                    <i class="status_icon icon38_msg warn"></i>
                    <div class="status_txt">
                      <h4>你已取消此次登录</h4>
                      <p>你可再次扫描登录，或关闭窗口</p>
                    </div>
                  </div>
                </div>
              </div>
              <div class="web_qrcode_switch_wrp js_switchToFast_wrp" style="display: none">
                <button
                  type="button"
                  class="weui-btn_reset weui-link js_switchToFast web_qrcode_switch"
                  >快捷登录</button
                >
              </div>
            </div>
          </div>
        </div>
        <!-- 2024年版UI -->
        <div class="web_qrcode_panel_wrp" id="tpl_iframe" style="display: none">
          <div class="web_qrcode_panel">
            <div class="web_qrcode_initial_context js_status js_wx_default_tip">
              <div class="web_qrcode_img_wrp">
                <img class="js_qrcode_img web_qrcode_img" src="/connect/qrcode/031fqpo71PMYll2o" />
                <button
                  style="display: none"
                  type="button"
                  class="weui-btn_reset web_qrcode_refresh_btn js_refresh_qrcode"
                  title="刷新"
                >
                  <i class="web_qrcode_refresh_icon"></i>
                </button>
                <i
                  style="display: none"
                  class="weui-loading js_refresh_qrcode_loading web_qrcode_refresh_loading"
                ></i>
                <div style="display: none" class="web_qrcode_img_mask js_refresh_qrcode_mask"></div>
              </div>
            </div>
            <div
              class="web_qrcode_msg web_qrcode_msg_success js_status js_wx_after_scan"
              style="display: none"
            >
              <div class="web_qrcode_msg_icon_area">
                <i class="web_qrcode_msg_icon web_qrcode_msg_icon_success"></i>
              </div>
              <div class="web_qrcode_msg_text_area">
                <h4 class="web_qrcode_msg_title">扫描成功</h4>
                <p class="web_qrcode_msg_desc">在微信中轻触允许即可登录</p>
              </div>
            </div>
            <div
              class="web_qrcode_msg web_qrcode_msg_error js_status js_wx_after_cancel"
              style="display: none"
            >
              <div class="web_qrcode_msg_icon_area">
                <i class="web_qrcode_msg_icon web_qrcode_msg_icon_error"></i>
              </div>
              <div class="web_qrcode_msg_text_area">
                <h4 class="web_qrcode_msg_title">你已取消此次登录</h4>
                <p class="web_qrcode_msg_desc">
                  你可<a class="weui-link js_web_qrcode_reload" href="javascript:;">再次登录</a>
                  ，或关闭窗口
                </p>
              </div>
            </div>
            <span class="weui-vertical-helper"></span>
          </div>
          <div class="web_qrcode_switch_wrp js_switchToFast_wrp" style="display: none">
            <button type="button" class="weui-btn_reset weui-link js_switchToFast web_qrcode_switch"
              >快捷登录</button
            >
          </div>
        </div>
      </div>
      <!-- 快捷登录 -->
      <div class="js_quick_login web_qrcode_panel_quick_login" style="display: none">
        <div class="qlogin_mod">
          <img
            src="https://res.wx.qq.com/t/fed_upload/937b4aa0-2cc5-42ec-81d7-e641da427fff/avatar_default.svg"
            alt=""
            class="js_quick_login_avatar qlogin_user_avatar"
          />
          <div class="js_quick_login_nickname qlogin_user_nickname">微信用户</div>
          <button class="weui-btn weui-btn_primary js_quick_login_btn qlogin_btn" type="button"
            >微信快捷登录</button
          >
          <div class="qlogin_msg js_quick_login_msg" style="display: none">登录中...</div>
          <div class="web_qrcode_switch_wrp js_switchToNormal_wrp">
            <button
              type="button"
              class="weui-btn_reset weui-link js_switchToNormal web_qrcode_switch"
              >使用其他头像、昵称或账号</button
            >
          </div>
        </div>
      </div>
    </div>
    <div class="qlogin_authorize_mask weui-mask_transparent" id="quick_login_authorize_mask"></div>
    <div role="alert" class="qlogin_toast" id="quick_login_success_toast">
      <div class="weui-mask_transparent"></div>
      <div class="weui-toast">
        <i class="weui-icon-success-no-circle weui-icon_toast"></i>
        <p class="weui-toast__content">已允许</p>
      </div>
    </div>
    <div role="alert" class="qlogin_toast" id="quick_login_fail_toast">
      <div class="weui-mask_transparent"></div>
      <div class="weui-toast">
        <i class="weui-icon-close weui-icon_toast"></i>
        <p class="weui-toast__content">已拒绝</p>
      </div>
    </div>
    <div role="alert" class="qlogin_toast" id="quick_login_error_toast">
      <div class="weui-mask_transparent"></div>
      <div class="weui-toast weui-toast_text">
        <p class="weui-toast__content">系统错误，请刷新重试</p>
      </div>
    </div>
    <div role="alert" class="qlogin_toast" id="quick_login_timeout_toast">
      <div class="weui-mask_transparent"></div>
      <div class="weui-toast">
        <i class="weui-icon-warn weui-icon_toast"></i>
        <p class="weui-toast__content" id="quick_login_error_msg">登录超时</p>
      </div>
    </div>
    <div role="alert" class="qlogin_toast" id="quick_login_loading_toast">
      <div class="weui-mask_transparent"></div>
      <div class="weui-toast">
        <span class="weui-loading weui-icon_toast"></span>
        <p class="weui-toast__content">正在加载</p>
      </div>
    </div>
    <script src="https://res.wx.qq.com/t/wx_fed/cdn_libs/res/jquery/1.11.3/jquery.min.js"></script>
    <script>
      // @cunjin 下面的变量是给开发者工具用的，inline到html里面，一定不能删掉
      var fordevtool = 'https://long.open.weixin.qq.com/connect/l/qrconnect?uuid=031fqpo71PMYll2o';
      // console.log('devtool use', fordevtool)
    </script>
    <script>
      var usenewdomain = '1' * 1 || 0;
    </script>
    <!--script-->
    <!--script-->
    <!--script-->
    <script>
      !(function (e) {
        function n(o) {
          if (t[o]) return t[o].exports;
          var s = (t[o] = {
            exports: {},
            id: o,
            loaded: !1,
          });
          return e[o].call(s.exports, s, s.exports, n), (s.loaded = !0), s.exports;
        }
        var t = {};
        return (n.m = e), (n.c = t), (n.p = '//res.wx.qq.com/t/wx_fed/mp/connect/res'), n(0);
      })([
        function (e, n, t) {
          e.exports = t(9) + t(10) + t(11);
        },
        ,
        ,
        function (e, n) {},
        ,
        ,
        ,
        function (e, n) {},
        ,
        function (module, exports) {
          'object' != typeof JSON && (JSON = {}),
            (function () {
              'use strict';
              function f(e) {
                return e < 10 ? '0' + e : e;
              }
              function this_value() {
                return this.valueOf();
              }
              function quote(e) {
                return (
                  (rx_escapable.lastIndex = 0),
                  rx_escapable.test(e)
                    ? '"' +
                      e.replace(rx_escapable, function (e) {
                        var n = meta[e];
                        return 'string' == typeof n
                          ? n
                          : '\\u' + ('0000' + e.charCodeAt(0).toString(16)).slice(-4);
                      }) +
                      '"'
                    : '"' + e + '"'
                );
              }
              function str(e, n) {
                var t,
                  o,
                  s,
                  i,
                  c,
                  r = gap,
                  a = n[e];
                switch (
                  (a && 'object' == typeof a && 'function' == typeof a.toJSON && (a = a.toJSON(e)),
                  'function' == typeof rep && (a = rep.call(n, e, a)),
                  typeof a)
                ) {
                  case 'string':
                    return quote(a);
                  case 'number':
                    return isFinite(a) ? String(a) : 'null';
                  case 'boolean':
                  case 'null':
                    return String(a);
                  case 'object':
                    if (!a) return 'null';
                    if (
                      ((gap += indent),
                      (c = []),
                      '[object Array]' === Object.prototype.toString.apply(a))
                    ) {
                      for (i = a.length, t = 0; t < i; t += 1) c[t] = str(t, a) || 'null';
                      return (
                        (s =
                          0 === c.length
                            ? '[]'
                            : gap
                              ? '[\n' + gap + c.join(',\n' + gap) + '\n' + r + ']'
                              : '[' + c.join(',') + ']'),
                        (gap = r),
                        s
                      );
                    }
                    if (rep && 'object' == typeof rep)
                      for (i = rep.length, t = 0; t < i; t += 1)
                        'string' == typeof rep[t] &&
                          ((o = rep[t]),
                          (s = str(o, a)),
                          s && c.push(quote(o) + (gap ? ': ' : ':') + s));
                    else
                      for (o in a)
                        Object.prototype.hasOwnProperty.call(a, o) &&
                          ((s = str(o, a)), s && c.push(quote(o) + (gap ? ': ' : ':') + s));
                    return (
                      (s =
                        0 === c.length
                          ? '{}'
                          : gap
                            ? '{\n' + gap + c.join(',\n' + gap) + '\n' + r + '}'
                            : '{' + c.join(',') + '}'),
                      (gap = r),
                      s
                    );
                }
              }
              var rx_one = /^[\],:{}\s]*$/,
                rx_two = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
                rx_three = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
                rx_four = /(?:^|:|,)(?:\s*\[)+/g,
                rx_escapable =
                  /[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
                rx_dangerous =
                  /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
              'function' != typeof Date.prototype.toJSON &&
                ((Date.prototype.toJSON = function () {
                  return isFinite(this.valueOf())
                    ? this.getUTCFullYear() +
                        '-' +
                        f(this.getUTCMonth() + 1) +
                        '-' +
                        f(this.getUTCDate()) +
                        'T' +
                        f(this.getUTCHours()) +
                        ':' +
                        f(this.getUTCMinutes()) +
                        ':' +
                        f(this.getUTCSeconds()) +
                        'Z'
                    : null;
                }),
                (Boolean.prototype.toJSON = this_value),
                (Number.prototype.toJSON = this_value),
                (String.prototype.toJSON = this_value));
              var gap, indent, meta, rep;
              'function' != typeof JSON.stringify &&
                ((meta = {
                  '\b': '\\b',
                  '\t': '\\t',
                  '\n': '\\n',
                  '\f': '\\f',
                  '\r': '\\r',
                  '"': '\\"',
                  '\\': '\\\\',
                }),
                (JSON.stringify = function (e, n, t) {
                  var o;
                  if (((gap = ''), (indent = ''), 'number' == typeof t))
                    for (o = 0; o < t; o += 1) indent += ' ';
                  else 'string' == typeof t && (indent = t);
                  if (
                    ((rep = n),
                    n &&
                      'function' != typeof n &&
                      ('object' != typeof n || 'number' != typeof n.length))
                  )
                    throw new Error('JSON.stringify');
                  return str('', {
                    '': e,
                  });
                })),
                'function' != typeof JSON.parse &&
                  (JSON.parse = function (text, reviver) {
                    function walk(e, n) {
                      var t,
                        o,
                        s = e[n];
                      if (s && 'object' == typeof s)
                        for (t in s)
                          Object.prototype.hasOwnProperty.call(s, t) &&
                            ((o = walk(s, t)), void 0 !== o ? (s[t] = o) : delete s[t]);
                      return reviver.call(e, n, s);
                    }
                    var j;
                    if (
                      ((text = String(text)),
                      (rx_dangerous.lastIndex = 0),
                      rx_dangerous.test(text) &&
                        (text = text.replace(rx_dangerous, function (e) {
                          return '\\u' + ('0000' + e.charCodeAt(0).toString(16)).slice(-4);
                        })),
                      rx_one.test(
                        text.replace(rx_two, '@').replace(rx_three, ']').replace(rx_four, ''),
                      ))
                    )
                      return (
                        (j = eval('(' + text + ')')),
                        'function' == typeof reviver
                          ? walk(
                              {
                                '': j,
                              },
                              '',
                            )
                          : j
                      );
                    throw new SyntaxError('JSON.parse');
                  });
            })();
        },
        function (e, n) {
          function t(e, n) {
            for (var t = new Array(), o = 0; o < e.length; o++)
              if ('&' == e.charAt(o)) {
                var s = [3, 4, 5, 9],
                  i = 0;
                for (var c in s) {
                  var r = s[c];
                  if (o + r <= e.length) {
                    var a = e.substr(o, r).toLowerCase();
                    if (n[a]) {
                      t.push(n[a]), (o = o + r - 1), (i = 1);
                      break;
                    }
                  }
                }
                0 == i && t.push(e.charAt(o));
              } else t.push(e.charAt(o));
            return t.join('');
          }
          function o() {
            for (
              var e = new Object(), n = '\'"<>`script:daex/hml;bs64,', o = 0;
              o < n.length;
              o++
            ) {
              for (
                var s = n.charAt(o), i = s.charCodeAt(), c = i, r = i.toString(16), a = 0;
                a < 7 - i.toString().length;
                a++
              )
                c = '0' + c;
              (e['&#' + i + ';'] = s), (e['&#' + c] = s), (e['&#x' + r] = s);
            }
            (e['&lt'] = '<'), (e['&gt'] = '>'), (e['&quot'] = '"');
            var l = location.href,
              d = document.referrer;
            (l = decodeURIComponent(t(l, e))), (d = decodeURIComponent(t(d, e)));
            var _ = new RegExp('[\'"<>`]|script:|data:text/html;base64,');
            if (_.test(l) || _.test(d)) {
              var u = '1.3',
                A = 'http://zyjc.sec.qq.com/dom',
                p = new Image();
              (p.src =
                A + '?v=' + u + '&u=' + encodeURIComponent(l) + '&r=' + encodeURIComponent(d)),
                (l = l.replace(/['\"<>`]|script:/gi, '')),
                (l = l.replace(/data:text\/html;base64,/gi, 'data:text/plain;base64,')),
                (location.href = l);
            }
          }
          o();
        },
        function (e, n) {
          !(function () {
            function e(e) {
              var n = document.location.search
                ? document.location.search.substring(1)
                : document.location.hash.substring(1);
              if (n) {
                if (null == e) return decodeURIComponent(n);
                for (var t = n.split('&'), o = 0; o < t.length; o++) {
                  var s = t[o].split('=');
                  if (s[0] === e) return decodeURIComponent(s[1] || '');
                }
              }
              return '';
            }
            function n(e, n) {
              n || (n = window.location.href), (e = e.replace(/[\[\]]/g, '\\</body>'));
              var t = new RegExp('[?&]' + e + '(=([^&#]*)|&|#|$)'),
                o = t.exec(n);
              return o ? (o[2] ? decodeURIComponent(o[2].replace(/\+/g, ' ')) : '') : null;
            }
            function t(e) {
              var n = document.location.search || document.location.hash;
              if (n) {
                if (('?' === n[0] && (n = n.slice(1)), null === e)) return decodeURIComponent(n);
                for (var t = n.split('&'), o = 0, s = t.length; o < s; o++) {
                  var i = t[o].split('=');
                  if (i[0] === e) return !0;
                }
              }
              return !1;
            }
            function o(t, o, s) {
              Math.random() >= 1 - (Number(s) || 0.1) &&
                (new Image().src =
                  'https://support.weixin.qq.com/cgi-bin/mmsupportmeshnodelogicsvr-bin/cube?biz=3512&label=connect.qrconnect&' +
                  t +
                  '=' +
                  o +
                  '&msg=' +
                  e('appid') +
                  '&idx1=' +
                  e('scope') +
                  '&idx2=' +
                  encodeURIComponent(encodeURIComponent(n('redirect_uri'))));
            }
            function s(e) {
              jQuery.ajax({
                type: 'GET',
                url: B + '/connect/l/qrconnect?uuid=' + O + (e ? '&last=' + e : ''),
                dataType: 'script',
                cache: !1,
                timeout: 6e4,
                success: function (e, n, t) {
                  o('action', 'connect_qrconnect_longpull_success', 0.01);
                  var i = window.wx_errcode;
                  switch (i) {
                    case 405:
                      o('action', 'connect_qrconnect_longpull_success_405', 0.01);
                      var c = 'https://www.binjianjifu.com/wxLoginPage?redirect=%2Fdashboard';
                      if (
                        ((c = c.replace(/&amp;/g, '&')),
                        (c += (c.indexOf('?') > -1 ? '&' : '?') + 'code=' + wx_code + '&state='),
                        console.log('扫码redirect_uri: ', c),
                        f)
                      )
                        if ('true' !== D && 'false' !== D)
                          try {
                            document.domain = 'qq.com';
                            var r = window.top.location.host.toLowerCase();
                            r && (window.location = c);
                          } catch (e) {
                            window.top.location = c;
                          }
                        else if ('true' === D)
                          try {
                            window.location = c;
                          } catch (e) {
                            window.top.location = c;
                          }
                        else window.top.location = c;
                      else window.location = c;
                      break;
                    case 404:
                      o('action', 'connect_qrconnect_longpull_success_404', 0.01),
                        jQuery('.js_status').hide(),
                        jQuery('.js_qr_img').hide(),
                        jQuery('.js_wx_after_scan').show(),
                        setTimeout(s, 100, i);
                      break;
                    case 403:
                      o('action', 'connect_qrconnect_longpull_success_403', 0.01),
                        jQuery('.js_status').hide(),
                        jQuery('.js_qr_img').hide(),
                        jQuery('.js_wx_after_cancel').show(),
                        setTimeout(s, 2e3, i);
                      break;
                    case 402:
                      o('action', 'connect_qrconnect_longpull_success_402', 0.01),
                        (U = !0),
                        (f && 1 !== v) || y
                          ? $('.js_qrcode_img').attr(
                              'src',
                              'https://res.wx.qq.com/t/fed_upload/46a73b115c002aa8d49ae255da18c592/qrcode_expired.jpg',
                            )
                          : ($('.js_refresh_qrcode').show(), $('.js_refresh_qrcode_mask').show());
                      break;
                    case 500:
                      o('action', 'connect_qrconnect_longpull_success_500', 0.01),
                        setTimeout(function () {
                          window.location.reload();
                        }, 200);
                      break;
                    case 408:
                      o('action', 'connect_qrconnect_longpull_success_408', 0.01),
                        (N && 0 !== G) || setTimeout(s, 2e3);
                      break;
                    default:
                      o('action', 'connect_qrconnect_longpull_success_others', 0.01);
                  }
                },
                error: function (e, n, t) {
                  o('action', 'connect_qrconnect_longpull_error', 0.01);
                  var i = window.wx_errcode;
                  408 == i
                    ? (o('action', 'connect_qrconnect_longpull_error_408', 0.01),
                      setTimeout(s, 5e3))
                    : (o('action', 'connect_qrconnect_longpull_error_others', 0.01),
                      setTimeout(s, 5e3, i));
                },
              });
            }
            function i(e, n) {
              var t,
                o,
                s = screen.width,
                i = screen.height,
                c =
                  window.outerWidth ||
                  document.documentElement.clientWidth ||
                  document.body.clientWidth,
                r =
                  window.outerHeight ||
                  document.documentElement.clientHeight ||
                  document.body.clientHeight,
                a = window.screenX || window.screenLeft || 0,
                l = window.screenY || window.screenTop || 0,
                d = window.screen.availLeft || 0,
                _ = window.screen.availTop || 0;
              return (
                window.top != window
                  ? void 0 === window.screen.availLeft
                    ? ((t = a + c / 2 - e / 2),
                      (o = l + r / 2 - n / 2),
                      console.log('availLeft undefined && centerX: ', t))
                    : ((t = s / 2 - e / 2 + d),
                      (o = i / 2 - n / 2 + _),
                      console.log('centerX: ', t))
                  : ((t = a + c / 2),
                    (o = l + r / 2),
                    (t =
                      0 === d
                        ? Math.min(Math.max(t - e / 2, 0), s + d - e)
                        : Math.min(Math.max(t - e / 2, d), s + d - e)),
                    (o =
                      0 === _
                        ? Math.min(Math.max(o - n / 2, 0), i + _ - n)
                        : Math.min(Math.max(o - n / 2, _), i + _ - n))),
                {
                  x: t,
                  y: o,
                }
              );
            }
            function c(e, n, t, o, s, i, r) {
              return (
                r || (r = jQuery.Deferred()),
                0 === e.length
                  ? ($('.js_quick_login').hide(),
                    $('.js_normal_login').show(),
                    $('.js_switchToFast_wrp').hide(),
                    $('.js_web_qrcode_tips_fast').hide(),
                    $('.js_web_qrcode_tips_normal').show(),
                    (N = !1),
                    console.log('所有端口均无法连接'),
                    r.resolve(),
                    r.promise())
                  : (console.log('当前port: ', e[0]),
                    $.ajax({
                      url: 'https://localhost.weixin.qq.com:' + e[0] + n,
                      type: t,
                      cache: !1,
                      contentType: 'application/json',
                      data: JSON.stringify(o),
                      success: function (n) {
                        s && s(n), r.resolve(n, e[0]);
                      },
                      error: function (a, l, d) {
                        console.log('端口' + e[0] + '连接失败，尝试下一个端口'),
                          e.length > 1
                            ? c(e.slice(1), n, t, o, s, i, r)
                            : (i && i(), r.resolve(!1));
                      },
                    }),
                    r.promise())
              );
            }
            function r(t) {
              return (
                console.log('checklogin post redirect_uri', n('redirect_uri')),
                c(
                  t,
                  '/api/check-login',
                  'POST',
                  {
                    apiname: 'qrconnectchecklogin',
                    jsdata: {
                      appid: e('appid'),
                      scope: e('scope'),
                      redirect_uri: n('redirect_uri'),
                      state: n('state') || '',
                    },
                  },
                  function (e) {
                    o('action', 'connect_qrconnect_checkLogin_succ', 1);
                  },
                  function () {
                    o('action', 'connect_qrconnect_checkLogin_fail', 1);
                  },
                )
              );
            }
            function a(e) {
              var n = e.errcode;
              return !(0 !== n || !V);
            }
            function l(e, n) {
              if (e) {
                var t = JSON.parse(e);
                return (
                  console.log('登录状态检查成功', t),
                  (K = n),
                  console.log('连通port: ', K),
                  (M = (t.jsdata && t.jsdata.authorize_uuid) || ''),
                  a(t)
                );
              }
              return !1;
            }
            function d(e, n) {
              if (n) var t = JSON.parse(n);
              e
                ? (o('action', 'connect_qrconnect_fastLogin_show', 1),
                  $('.js_quick_login').show(),
                  $('.js_normal_login').hide(),
                  $('.js_switchToFast_wrp').show(),
                  $('.js_web_qrcode_tips_fast').show(),
                  $('.js_web_qrcode_tips_normal').hide(),
                  $('.js_quick_login_nickname').text((t.jsdata && t.jsdata.nickname) || ''),
                  $('.js_quick_login_avatar').attr(
                    'src',
                    (t.jsdata && t.jsdata.headimgurl) ||
                      'https://res.wx.qq.com/t/fed_upload/937b4aa0-2cc5-42ec-81d7-e641da427fff/avatar_default.svg',
                  ))
                : ($('.js_quick_login').hide(),
                  $('.js_normal_login').show(),
                  $('.js_switchToFast_wrp').hide(),
                  $('.js_web_qrcode_tips_fast').hide(),
                  $('.js_web_qrcode_tips_normal').show());
            }
            function _(e, n) {
              for (var t = !1, o = 0, s = 0; s < e.length; s++)
                !(function (s) {
                  e[s].then(function (s, i) {
                    t ||
                      (console.log('before handle, fastLogin: ', N),
                      (N = l(s, i)),
                      console.log('after handle, fastLogin: ', N),
                      N && ((t = !0), d(!0, s), n()),
                      o++,
                      t || o !== e.length || (d(!1, !1), n()));
                  });
                })(s);
            }
            function u(e, n) {
              for (var t = [], o = 0; o < e.length; o++) t.push(r([e[o]]));
              _(t, n);
            }
            function A() {
              (G = 0),
                $('.js_quick_login').hide(),
                $('.js_normal_login').show(),
                $('.js_switchToFast_wrp').show(),
                $('.js_web_qrcode_tips_fast').hide(),
                $('.js_web_qrcode_tips_normal').show(),
                setTimeout(s, 100);
            }
            function p() {
              (G = 1),
                $('#quick_login_loading_toast').fadeIn(300),
                console.log('连通port: ', K),
                u([K], function () {
                  console.log('switchToQuickLogin, fastLogin: ', N),
                    $('#quick_login_loading_toast').fadeOut(300),
                    N || setTimeout(s, 1e3);
                });
            }
            function g() {
              var e = jQuery.Deferred(),
                n = window.location.href.replace(/#.*$/, '') + '&f=xml&' + new Date().getTime();
              return (
                jQuery.ajax({
                  url: n,
                  type: 'GET',
                  dataType: 'xml',
                  cache: !1,
                  success: function (n) {
                    $('.js_refresh_qrcode_loading').hide(),
                      $('.js_refresh_qrcode_mask').hide(),
                      (O = jQuery(n).find('uuid').text()),
                      $('.js_qrcode_img').attr('src', '/connect/qrcode/' + O),
                      setTimeout(s, 2e3),
                      e.resolve();
                  },
                  error: function (n, t, o) {
                    $('.js_refresh_qrcode_loading').hide(),
                      $('.js_refresh_qrcode_mask').hide(),
                      $('#quick_login_error_toast').fadeIn(300, function () {
                        var e = this;
                        setTimeout(function () {
                          $(e).fadeOut(300);
                        }, 1e3);
                      }),
                      console.log('qrcode img error: ', t, o),
                      e.resolve();
                  },
                }),
                e.promise()
              );
            }
            function w() {
              var e = jQuery.Deferred();
              return (
                setTimeout(function () {
                  e.resolve();
                }, 1e3),
                jQuery(window).load(function () {
                  e.resolve();
                }),
                e.promise()
              );
            }
            'undefined' == typeof console
              ? (console = {
                  log: function () {},
                  error: function () {},
                })
              : ('undefined' == typeof console.log && (console.log = function () {}),
                'undefined' == typeof console.error && (console.error = function () {})),
              jQuery('.js_web_qrcode_reload').click(function () {
                window.location.reload();
              });
            var f = window.top != window,
              m = t('self_redirect') || t('style') || t('href') || t('oldstyle'),
              h = parseInt(e('styletype'), 10),
              q = NaN,
              b =
                'data:text/css;base64,Ci5pbXBvd2VyQm94IC5xcmNvZGUge3dpZHRoOiAxODBweDttYXJnaW46MCBhdXRvO2Rpc3BsYXk6IGJsb2NrO30KLmltcG93ZXJCb3ggLnRpdGxlIHtkaXNwbGF5OiBub25lO30KLmltcG93ZXJCb3ggLnN0YXR1cy5zdGF0dXNfYnJvd3NlciB7Y29sb3I6ICMwMDA7fQouaW1wb3dlckJveCAuc3RhdHVzIHtwYWRkaW5nOiAwO30KLmltcG93ZXJCb3ggLnN0YXR1c190eHQge2NvbG9yOiAjMDAwO30KLndycF9jb2RlewogICAgd2lkdGg6IDIwMHB4OwogICAgaGVpZ2h0OiAyMDBweDsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFiZ0FBQUc0Q0FZQUFBQTN5dkt6QUFBQUFYTlNSMElBcnM0YzZRQUFGYzVKUkVGVWVGN3QyYytLM3VVWnh2SGZPem1BZGgwWVNBZzB1Z3ZvQ1NoSUNVZ3dSMkRjdURXNGNNd3F5V3AwWTV0dHV6QWV3V2dRMHRDaSs1YVc3RXlLa3NGQmNPa0oxTGRNSlA2SnRnaHovWjduV255eUhIanY1MzQvOStMTFREYkxuYjN0TXVuZi9vVVhsOHU3NXllOTdsa0NCQWdRV0ZQZzRPamhjdTMrSjJzKzhYOW5iMllGVHR5bTNkekRCQWdRR0NZd00zSlRBbmZ4OUxsYjd6MzMwamZEaEQxRWdBQUJBdE1FcnY3anI3Kzk5L1VYYjR4ZVlFTGdOcTh0bDk2NVBmcUxlbzhBQVFJRUpnb2N2SDFsT2JWOWYrUUd2eHk0N1hLNHloS2J6VTF4VzBYV1VBSUVDUFFMSEVkdVozdDlsVVUzeTVtbjUvNVM0QTZYUysrZVhXVUJRd2tRSUVDQXdCb0NIKzA5V3A2S25NQ3RBVzBtQVFJRUNJd1ZFTGl4M2w0alFJQUFnVUVDQWpjSTJqTUVDQkFnTUZaQTRNWjZlNDBBQVFJRUJna0kzQ0JvenhBZ1FJREFXQUdCRyt2dE5RSUVDQkFZSkNCd2c2QTlRNEFBQVFKakJRUnVyTGZYQ0JBZ1FHQ1FnTUFOZ3ZZTUFRSUVDSXdWRUxpeDNsNGpRSUFBZ1VFQ0FqY0kyak1FQ0JBZ01GWkE0TVo2ZTQwQUFRSUVCZ2tJM0NCb3p4QWdRSURBV0FHQkcrdnROUUlFQ0JBWUpDQndnNkE5UTRBQUFRSmpCUVJ1ckxmWENCQWdRR0NRZ01BTmd2WU1BUUlFQ0l3VkVMaXgzbDRqUUlBQWdVRUNBamNJMmpNRUNCQWdNRlpBNE1aNmU0MEFBUUlFQmdrSTNDQm96eEFnUUlEQVdJRmZGN2pOYTh1bGQyNlAzY3hyQkFnUUlFRGdCQUlIYjE5WlRtM2YvL0dFelhKbmIvdkREOFR0Qkx3K1NvQUFBUUl6Qlo2SzNQZUJ1M2o2M0syN3o3OStkZVp1M2laQWdBQUJBaWNSK1AzZi8vVEhlMTkvOGNieGpNZUIyNy93NHZMSzd1OXVQcnM1ZStNa2czMldBQUVDQkFqTUZQaHMrK2pHaDBmL3ZuN3QvaWZMWnYvTGU5dkx1K2VYN2JJVnVKbFg4VFlCQWdRSW5GamdPSENiWlhQOTRPamhzbm13UFh6OGYzQUNkMkpYQXdnUUlFQmdzc0NUd0QzK0U2WEFUYjZHNXdrUUlFQWdKaUJ3TVVxRENCQWdRS0JKUU9DYXJtRVhBZ1FJRUlnSkNGeU0waUFDQkFnUWFCSVF1S1pyMklVQUFRSUVZZ0lDRjZNMGlBQUJBZ1NhQkFTdTZScDJJVUNBQUlHWWdNREZLQTBpUUlBQWdTWUJnV3U2aGwwSUVDQkFJQ1lnY0RGS2d3Z1FJRUNnU1VEZ21xNWhGd0lFQ0JDSUNRaGNqTklnQWdRSUVHZ1NFTGltYTlpRkFBRUNCR0lDQWhlak5JZ0FBUUlFbWdRRXJ1a2FkaUZBZ0FDQm1JREF4U2dOSWtDQUFJRW1BWUZydW9aZENCQWdRQ0FtSUhBeFNvTUlFQ0JBb0VsQTRKcXVZUmNDQkFnUWlBa0lYSXpTSUFJRUNCQm9FaEM0cG12WWhRQUJBZ1JpQWdJWG96U0lBQUVDQkpvRUJLN3BHblloUUlBQWdaaUF3TVVvRFNKQWdBQ0JKZ0dCYTdxR1hRZ1FJRUFnSmlCd01VcURDQkFnUUtCSlFPQ2FybUVYQWdRSUVJZ0pDRnlNMGlBQ0JBZ1FhQklRdUtacjJJVUFBUUlFWWdJQ0Y2TTBpQUFCQWdTYUJBU3U2UnAySVVDQUFJR1lnTURGS0EwaVFJQUFnU1lCZ1d1NmhsMElFQ0JBSUNZZ2NERktnd2dRSUVDZ1NVRGdtcTVoRndJRUNCQ0lDUWhjak5JZ0FnUUlFR2dTRUxpbWE5aUZBQUVDQkdJQ0FoZWpOSWdBQVFJRW1nUUVydWthZGlGQWdBQ0JtSURBeFNnTklrQ0FBSUVtQVlGcnVvWmRDQkFnUUNBbUlIQXhTb01JRUNCQW9FbEE0SnF1WVJjQ0JBZ1FpQWtJWEl6U0lBSUVDQkJvRWhDNHBtdlloUUFCQWdSaUFnSVhvelNJQUFFQ0JKb0VCSzdwR25ZaFFJQUFnWmlBd01Vb0RTSkFnQUNCSmdHQmE3cUdYUWdRSUVBZ0ppQndNVXFEQ0JBZ1FLQkpRT0Nhcm1FWEFnUUlFSWdKQ0Z5TTBpQUNCQWdRYUJJUXVLWnIySVVBQVFJRVlnSUNGNk0waUFBQkFnU2FCQVN1NlJwMklVQ0FBSUdZZ01ERktBMGlRSUFBZ1NZQmdXdTZobDBJRUNCQUlDWWdjREZLZ3dnUUlFQ2dTVURnbXE1aEZ3SUVDQkNJQ1FoY2pOSWdBZ1FJRUdnU0VMaW1hOWlGQUFFQ0JHSUNBaGVqTklnQUFRSUVtZ1FFcnVrYWRpRkFnQUNCbUlEQXhTZ05Ja0NBQUlFbUFZRnJ1b1pkQ0JBZ1FDQW1JSEF4U29NSUVDQkFvRWxBNEpxdVlSY0NCQWdRaUFrSVhJelNJQUlFQ0JCb0VoQzRwbXZZaFFBQkFnUmlBZ0lYb3pTSUFBRUNCSm9FQks3cEduWWhRSUFBZ1ppQXdNVW9EU0pBZ0FDQkpnR0JhN3FHWFFnUUlFQWdKaUJ3TVVxRENCQWdRS0JKUU9DYXJtRVhBZ1FJRUlnSkNGeU0waUFDQkFnUWFCSVF1S1pyMklVQUFRSUVZZ0lDRjZNMGlBQUJBZ1NhQkFTdTZScDJJVUNBQUlHWWdNREZLQTBpUUlBQWdTWUJnV3U2aGwwSUVDQkFJQ1lnY0RGS2d3Z1FJRUNnU1VEZ21xNWhGd0lFQ0JDSUNRaGNqTklnQWdRSUVHZ1NFTGltYTlpRkFBRUNCR0lDQWhlak5JZ0FBUUlFbWdRRXJ1a2FkaUZBZ0FDQm1JREF4U2dOSWtDQUFJRW1BWUZydW9aZENCQWdRQ0FtSUhBeFNvTUlFQ0JBb0VsQTRKcXVZUmNDQkFnUWlBa0lYSXpTSUFJRUNCQm9FaEM0cG12WWhRQUJBZ1JpQWdJWG96U0lBQUVDQkpvRUJLN3BHblloUUlBQWdaaUF3TVVvRFNKQWdBQ0JKZ0dCYTdxR1hRZ1FJRUFnSmlCd01VcURDQkFnUUtCSlFPQ2FybUVYQWdRSUVJZ0pDRnlNMGlBQ0JBZ1FhQklRdUtacjJJVUFBUUlFWWdJQ0Y2TTBpQUFCQWdTYUJBU3U2UnAySVVDQUFJR1lnTURGS0EwaVFJQUFnU1lCZ1d1NmhsMElFQ0JBSUNZZ2NERktnd2dRSUVDZ1NVRGdtcTVoRndJRUNCQ0lDUWhjak5JZ0FnUUlFR2dTRUxpbWE5aUZBQUVDQkdJQ0FoZWpOSWdBQVFJRW1nUUVydWthZGlGQWdBQ0JtSURBeFNnTklrQ0FBSUVtQVlGcnVvWmRDQkFnUUNBbUlIQXhTb01JRUNCQW9FbEE0SnF1WVJjQ0JBZ1FpQWtJWEl6U0lBSUVDQkJvRWhDNHBtdlloUUFCQWdSaUFnSVhvelNJQUFFQ0JKb0VCSzdwR25ZaFFJQUFnWmlBd01Vb0RTSkFnQUNCSmdHQmE3cUdYUWdRSUVBZ0ppQndNVXFEQ0JBZ1FLQkpRT0Nhcm1FWEFnUUlFSWdKQ0Z5TTBpQUNCQWdRYUJJUXVLWnIySVVBQVFJRVlnSUNGNk0waUFBQkFnU2FCQVN1NlJwMklVQ0FBSUdZZ01ERktBMGlRSUFBZ1NZQmdXdTZobDBJRUNCQUlDWWdjREZLZ3dnUUlFQ2dTVURnbXE1aEZ3SUVDQkNJQ1FoY2pOSWdBZ1FJRUdnU0VMaW1hOWlGQUFFQ0JHSUNBaGVqTklnQUFRSUVtZ1FFcnVrYWRpRkFnQUNCbUlEQXhTZ05Ja0NBQUlFbUFZRnJ1b1pkQ0JBZ1FDQW1JSEF4U29NSUVDQkFvRWxBNEpxdVlSY0NCQWdRaUFrSVhJelNJQUlFQ0JCb0VoQzRwbXZZaFFBQkFnUmlBZ0lYb3pTSUFBRUNCSm9FQks3cEduWWhRSUFBZ1ppQXdNVW9EU0pBZ0FDQkpnR0JhN3FHWFFnUUlFQWdKaUJ3TVVxRENCQWdRS0JKUU9DYXJtRVhBZ1FJRUlnSkNGeU0waUFDQkFnUWFCSVF1S1pyMklVQUFRSUVZZ0lDRjZNMGlBQUJBZ1NhQkFTdTZScDJJVUNBQUlHWWdNREZLQTBpUUlBQWdTWUJnV3U2aGwwSUVDQkFJQ1lnY0RGS2d3Z1FJRUNnU1VEZ21xNWhGd0lFQ0JDSUNRaGNqTklnQWdRSUVHZ1NFTGltYTlpRkFBRUNCR0lDQWhlak5JZ0FBUUlFbWdRRXJ1a2FkaUZBZ0FDQm1JREF4U2dOSWtDQUFJRW1BWUZydW9aZENCQWdRQ0FtSUhBeFNvTUlFQ0JBb0VsQTRKcXVZUmNDQkFnUWlBa0lYSXpTSUFJRUNCQm9FaEM0cG12WWhRQUJBZ1JpQWdJWG96U0lBQUVDQkpvRUJLN3BHblloUUlBQWdaaUF3TVVvRFNKQWdBQ0JKZ0dCYTdxR1hRZ1FJRUFnSmlCd01VcURDQkFnUUtCSlFPQ2FybUVYQWdRSUVJZ0pDRnlNMGlBQ0JBZ1FhQklRdUtacjJJVUFBUUlFWWdJQ0Y2TTBpQUFCQWdTYUJBU3U2UnAySVVDQUFJR1lnTURGS0EwaVFJQUFnU1lCZ1d1NmhsMElFQ0JBSUNZZ2NERktnd2dRSUVDZ1NVRGdtcTVoRndJRUNCQ0lDUWhjak5JZ0FnUUlFR2dTRUxpbWE5aUZBQUVDQkdJQ0FoZWpOSWdBQVFJRW1nUUVydWthZGlGQWdBQ0JtSURBeFNnTklrQ0FBSUVtQVlGcnVvWmRDQkFnUUNBbUlIQXhTb01JRUNCQW9FbEE0SnF1WVJjQ0JBZ1FpQWtJWEl6U0lBSUVDQkJvRWhDNHBtdlloUUFCQWdSaUFnSVhvelNJQUFFQ0JKb0VCSzdwR25ZaFFJQUFnWmlBd01Vb0RTSkFnQUNCSmdHQmE3cUdYUWdRSUVBZ0ppQndNVXFEQ0JBZ1FLQkpRT0Nhcm1FWEFnUUlFSWdKQ0Z5TTBpQUNCQWdRYUJJUXVLWnIySVVBQVFJRVlnSUNGNk0waUFBQkFnU2FCQVN1NlJwMklVQ0FBSUdZZ01ERktBMGlRSUFBZ1NZQmdXdTZobDBJRUNCQUlDWWdjREZLZ3dnUUlFQ2dTVURnbXE1aEZ3SUVDQkNJQ1FoY2pOSWdBZ1FJRUdnU0VMaW1hOWlGQUFFQ0JHSUNBaGVqTklnQUFRSUVtZ1FFcnVrYWRpRkFnQUNCbUlEQXhTZ05Ja0NBQUlFbUFZRnJ1b1pkQ0JBZ1FDQW1JSEF4U29NSUVDQkFvRWxBNEpxdVlSY0NCQWdRaUFrSVhJelNJQUlFQ0JCb0VoQzRwbXZZaFFBQkFnUmlBZ0lYb3pTSUFBRUNCSm9FQks3cEduWWhRSUFBZ1ppQXdNVW9EU0pBZ0FDQkpnR0JhN3FHWFFnUUlFQWdKaUJ3TVVxRENCQWdRS0JKUU9DYXJtRVhBZ1FJRUlnSkNGeU0waUFDQkFnUWFCSVF1S1pyMklVQUFRSUVZZ0lDRjZNMGlBQUJBZ1NhQkFTdTZScDJJVUNBQUlHWWdNREZLQTBpUUlBQWdTWUJnV3U2aGwwSUVDQkFJQ1lnY0RGS2d3Z1FJRUNnU1VEZ21xNWhGd0lFQ0JDSUNRaGNqTklnQWdRSUVHZ1NFTGltYTlpRkFBRUNCR0lDQWhlak5JZ0FBUUlFbWdRRXJ1a2FkaUZBZ0FDQm1JREF4U2dOSWtDQUFJRW1BWUZydW9aZENCQWdRQ0FtSUhBeFNvTUlFQ0JBb0VsQTRKcXVZUmNDQkFnUWlBa0lYSXpTSUFJRUNCQm9FaEM0cG12WWhRQUJBZ1JpQWdJWG96U0lBQUVDQkpvRUJLN3BHblloUUlBQWdaaUF3TVVvRFNKQWdBQ0JKZ0dCYTdxR1hRZ1FJRUFnSmlCd01VcURDQkFnUUtCSlFPQ2FybUVYQWdRSUVJZ0pDRnlNMGlBQ0JBZ1FhQklRdUtacjJJVUFBUUlFWWdJQ0Y2TTBpQUFCQWdTYUJBU3U2UnAySVVDQUFJR1lnTURGS0EwaVFJQUFnU1lCZ1d1NmhsMElFQ0JBSUNZZ2NERktnd2dRSUVDZ1NVRGdtcTVoRndJRUNCQ0lDUWhjak5JZ0FnUUlFR2dTRUxpbWE5aUZBQUVDQkdJQ0FoZWpOSWdBQVFJRW1nUUVydWthZGlGQWdBQ0JtSURBeFNnTklrQ0FBSUVtQVlGcnVvWmRDQkFnUUNBbUlIQXhTb01JRUNCQW9FbEE0SnF1WVJjQ0JBZ1FpQWtJWEl6U0lBSUVDQkJvRWhDNHBtdlloUUFCQWdSaUFnSVhvelNJQUFFQ0JKb0VCSzdwR25ZaFFJQUFnWmlBd01Vb0RTSkFnQUNCSmdHQmE3cUdYUWdRSUVBZ0ppQndNVXFEQ0JBZ1FLQkpRT0Nhcm1FWEFnUUlFSWdKQ0Z5TTBpQUNCQWdRYUJJUXVLWnIySVVBQVFJRVlnSUNGNk0waUFBQkFnU2FCQVN1NlJwMklVQ0FBSUdZZ01ERktBMGlRSUFBZ1NZQmdXdTZobDBJRUNCQUlDWWdjREZLZ3dnUUlFQ2dTVURnbXE1aEZ3SUVDQkNJQ1FoY2pOSWdBZ1FJRUdnU0VMaW1hOWlGQUFFQ0JHSUNBaGVqTklnQUFRSUVtZ1FFcnVrYWRpRkFnQUNCbUlEQXhTZ05Ja0NBQUlFbUFZRnJ1b1pkQ0JBZ1FDQW1JSEF4U29NSUVDQkFvRWxBNEpxdVlSY0NCQWdRaUFrSVhJelNJQUlFQ0JCb0VoQzRwbXZZaFFBQkFnUmlBZ0lYb3pTSUFBRUNCSm9FQks3cEduWWhRSUFBZ1ppQXdNVW9EU0pBZ0FDQkpnR0JhN3FHWFFnUUlFQWdKaUJ3TVVxRENCQWdRS0JKUU9DYXJtRVhBZ1FJRUlnSkNGeU0waUFDQkFnUWFCSVF1S1pyMklVQUFRSUVZZ0lDRjZNMGlBQUJBZ1NhQkFTdTZScDJJVUNBQUlHWWdNREZLQTBpUUlBQWdTWUJnV3U2aGwwSUVDQkFJQ1lnY0RGS2d3Z1FJRUNnU1VEZ21xNWhGd0lFQ0JDSUNRaGNqTklnQWdRSUVHZ1NFTGltYTlpRkFBRUNCR0lDQWhlak5JZ0FBUUlFbWdRRXJ1a2FkaUZBZ0FDQm1JREF4U2dOSWtDQUFJRW1BWUZydW9aZENCQWdRQ0FtSUhBeFNvTUlFQ0JBb0VsQTRKcXVZUmNDQkFnUWlBa0lYSXpTSUFJRUNCQm9FaEM0cG12WWhRQUJBZ1JpQWdJWG96U0lBQUVDQkpvRUJLN3BHblloUUlBQWdaaUF3TVVvRFNKQWdBQ0JKZ0dCYTdxR1hRZ1FJRUFnSmlCd01VcURDQkFnUUtCSlFPQ2FybUVYQWdRSUVJZ0pDRnlNMGlBQ0JBZ1FhQklRdUtacjJJVUFBUUlFWWdJQ0Y2TTBpQUFCQWdTYUJBU3U2UnAySVVDQUFJR1lnTURGS0EwaVFJQUFnU1lCZ1d1NmhsMElFQ0JBSUNZZ2NERktnd2dRSUVDZ1NVRGdtcTVoRndJRUNCQ0lDUWhjak5JZ0FnUUlFR2dTRUxpbWE5aUZBQUVDQkdJQ0FoZWpOSWdBQVFJRW1nUUVydWthZGlGQWdBQ0JtSURBeFNnTklrQ0FBSUVtQVlGcnVvWmRDQkFnUUNBbUlIQXhTb01JRUNCQW9FbEE0SnF1WVJjQ0JBZ1FpQWtJWEl6U0lBSUVDQkJvRWhDNHBtdlloUUFCQWdSaUFnSVhvelNJQUFFQ0JKb0VCSzdwR25ZaFFJQUFnWmlBd01Vb0RTSkFnQUNCSmdHQmE3cUdYUWdRSUVBZ0ppQndNVXFEQ0JBZ1FLQkpRT0Nhcm1FWEFnUUlFSWdKQ0Z5TTBpQUNCQWdRYUJJUXVLWnIySVVBQVFJRVlnSUNGNk0waUFBQkFnU2FCQVN1NlJwMklVQ0FBSUdZZ01ERktBMGlRSUFBZ1NZQmdXdTZobDBJRUNCQUlDWWdjREZLZ3dnUUlFQ2dTVURnbXE1aEZ3SUVDQkNJQ1FoY2pOSWdBZ1FJRUdnU0VMaW1hOWlGQUFFQ0JHSUNBaGVqTklnQUFRSUVtZ1FFcnVrYWRpRkFnQUNCbUlEQXhTZ05Ja0NBQUlFbUFZRnJ1b1pkQ0JBZ1FDQW1JSEF4U29NSUVDQkFvRWxBNEpxdVlSY0NCQWdRaUFrSVhJelNJQUlFQ0JCb0VoQzRwbXZZaFFBQkFnUmlBZ0lYb3pTSUFBRUNCSm9FQks3cEduWWhRSUFBZ1ppQXdNVW9EU0pBZ0FDQkpnR0JhN3FHWFFnUUlFQWdKaUJ3TVVxRENCQWdRS0JKUU9DYXJtRVhBZ1FJRUlnSkNGeU0waUFDQkFnUWFCSVF1S1pyMklVQUFRSUVZZ0lDRjZNMGlBQUJBZ1NhQkFTdTZScDJJVUNBQUlHWWdNREZLQTBpUUlBQWdTWUJnV3U2aGwwSUVDQkFJQ1lnY0RGS2d3Z1FJRUNnU1VEZ21xNWhGd0lFQ0JDSUNRaGNqTklnQWdRSUVHZ1NFTGltYTlpRkFBRUNCR0lDQWhlak5JZ0FBUUlFbWdRRXJ1a2FkaUZBZ0FDQm1NQlBBcmYvNVYrMmwzZWZXYmJMOXVhem03TTNZcThZUklBQUFRSUVCZ3M4Q2R6QjBZTmxzOXpaMis1ZmVHRjVaZmU4d0EwK2hPY0lFQ0JBSUN0d0hMZ1BqeDVldjNiLzArOENkenorNHVsenQrNCsvL3JWN0ZPbUVTQkFnQUNCY1FJWC8vbm5QOXo5NnZQSExmcytjSStmMzltNXNyeTgvOEc0VmJ4RWdBQUJBZ1JDQWgrLzllcnk3ZWIyazJrL0RaekloWlNOSVVDQUFJR2hBay9GN2VlL3dYMjN6ZUZ5NmQyelF4ZnpHQUVDQkFnUU9JbkFSM3VQbHMxeTVzY2pmdjRibk1DZGhOaG5DUkFnUUdDR2dNRE5VUGNtQVFJRUNLd3VJSENyRTN1QUFBRUNCR1lJQ053TWRXOFNJRUNBd09vQ0FyYzZzUWNJRUNCQVlJYUF3TTFROXlZQkFnUUlyQzRnY0tzVGU0QUFBUUlFWmdnSTNBeDFieElnUUlEQTZnSUN0enF4QndnUUlFQmdob0RBelZEM0pnRUNCQWlzTGlCd3F4TjdnQUFCQWdSbUNBamNESFZ2RWlCQWdNRHFBZ0szT3JFSENCQWdRR0NHZ01ETlVQY21BUUlFQ0t3dUlIQ3JFM3VBQUFFQ0JHWUlDTndNZFc4U0lFQ0F3T29DQXJjNnNRY0lFQ0JBWUlhQXdNMVE5eVlCQWdRSXJDNGdjS3NUZTRBQUFRSUVaZ2dJM0F4MWJ4SWdRSURBNmdJQ3R6cXhCd2dRSUVCZ2hzQ3ZETnl5YkpmRFZmWTd0WE5qZVhuL2cxVm1HMHFBQUFFQzNRSWZ2L1hxOHAvTmpWV1czQ3hubnA2N1dlN3NiVmQ1N0g4TjNkbTVJbkpEeFQxR2dBQ0IrUUxIY2Z0MmMzdmtJdU1EdHl6THhkUG5icjMzM0V2ZmpQeWkzaUpBZ0FDQk9RSnYvdXR2djduNzFlZFhSNzgrSlhESFgzTC93Z3ZMNWQxblJuOWY3eEVnUUlEQVFJR0Rvd2ZMdGZ1ZkRuenhoNmVtQlU3a3B0emJvd1FJRUJnbU1ETnV4MS95djBuNmgvbUZyQlBZQUFBQUFFbEZUa1N1UW1DQyk7CiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KI3d4X2RlZmF1bHRfdGlwIHsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KCi5pbXBvd2VyQm94IC5xcmNvZGUgewogYm9yZGVyOiBub25lOwp9',
              v = parseInt(n('stylelite'), 10),
              y = !1;
            if ((1 !== h && 0 !== h && 1 === q && (h = 0), 1 !== v && 1 !== h && 0 !== h && b)) {
              (y = !0), o('action', 'connect_qrconnect_css_href');
              var j = document.createElement('link');
              (j.rel = 'stylesheet'),
                (j.href = b.replace(new RegExp('javascript:', 'gi'), '')),
                document.getElementsByTagName('head')[0].appendChild(j);
            }
            if ((1 === v && (jQuery('#tpl_old_iframe').hide(), jQuery('#tpl_iframe').show()), f)) {
              o('action', 'connect_qrconnect_iframe'),
                (document.body.className += ' web_qrcode_type_iframe');
              var x = 'black';
              'white' != x && (document.body.style.color = '#373737'),
                jQuery('#tpl_for_iframe').show();
            } else {
              o('action', 'connect_qrconnect_page'),
                document.getElementsByClassName ||
                  (document.getElementsByClassName = function (e) {
                    for (
                      var n = [],
                        t = new RegExp('(^| )' + e + '( |$)'),
                        o = document.getElementsByTagName('*'),
                        s = 0,
                        i = o.length;
                      s < i;
                      s++
                    )
                      t.test(o[s].className) && n.push(o[s]);
                    return n;
                  });
              for (
                var k = document.getElementsByClassName('status'), E = 0, T = k.length;
                E < T;
                ++E
              ) {
                var Q = k[E];
                Q.className = Q.className + ' normal';
              }
              if (m)
                o('action', 'connect_qrconnect_page_embedded'),
                  (document.body.className += ' web_qrcode_type_page_embedded'),
                  (document.body.style.backgroundColor = '#333333'),
                  (document.body.style.padding = '50px'),
                  jQuery('#tpl_for_iframe').show();
              else {
                o('action', 'connect_qrconnect_page_self');
                var C = document.createElement('meta');
                (C.name = 'color-scheme'),
                  (C.content = 'light dark'),
                  document.getElementsByTagName('head')[0].appendChild(C),
                  (document.body.className += ' web_qrcode_type_page_self'),
                  jQuery('#tpl_for_page').show();
              }
            }
            var B = window.usenewdomain
                ? 'https://lp.open.weixin.qq.com'
                : 'https://long.open.weixin.qq.com',
              D = n('self_redirect'),
              O = '031fqpo71PMYll2o',
              U = !1,
              S = !1,
              I = 360,
              F = 263,
              G = -1,
              N = !1,
              V = 0 !== parseInt(n('fast_login'), 10);
            console.log('fast_login: ', n('fast_login')), console.log('fastLogin_enabled: ', V);
            var M,
              K,
              R,
              z = [14013, 14014, 14015, 13013, 13014, 13015];
            $('.js_quick_login_btn').click(function () {
              o('action', 'connect_qrconnect_fastLogin_click', 1);
              var t = i(I, F);
              $('.js_quick_login_btn').prop('disabled', !0),
                console.log('发起authorize请求，port=', K),
                console.log('authorize post redirect_uri', n('redirect_uri')),
                $.ajax({
                  url: 'https://localhost.weixin.qq.com:' + K + '/api/authorize',
                  type: 'POST',
                  cache: !1,
                  contentType: 'application/json',
                  data: JSON.stringify({
                    apiname: 'qrconnectfastauthorize',
                    jsdata: {
                      data: JSON.stringify({
                        x: t.x,
                        y: t.y,
                      }),
                      appid: e('appid'),
                      scope: e('scope'),
                      redirect_uri: n('redirect_uri'),
                      state: n('state') || '',
                      authorize_uuid: M,
                    },
                  }),
                  success: function (e) {
                    $('.js_quick_login_btn').prop('disabled', !1), console.log('服务器返回:', e);
                    var n = JSON.parse(e);
                    switch (
                      (console.log('json:', n), (R = n.errcode), console.log('code:', R), R)
                    ) {
                      case 0:
                        console.log('允许登录'),
                          $('.js_quick_login_btn').hide(),
                          $('.js_switchToNormal_wrp').hide(),
                          $('.js_quick_login_msg').show(),
                          $('#quick_login_success_toast').fadeIn(300, function () {
                            var e = this;
                            setTimeout(function () {
                              if (($(e).fadeOut(300), f))
                                if ('true' !== D && 'false' !== D)
                                  try {
                                    document.domain = 'qq.com';
                                    var t = window.top.location.host.toLowerCase();
                                    t && (window.location = n.jsdata.redirect_url);
                                  } catch (e) {
                                    window.top.location = n.jsdata.redirect_url;
                                  }
                                else if ('true' === D)
                                  try {
                                    window.location = n.jsdata.redirect_url;
                                  } catch (e) {
                                    window.top.location = n.jsdata.redirect_url;
                                  }
                                else window.top.location = n.jsdata.redirect_url;
                              else window.location = n.jsdata.redirect_url;
                            }, 1e3);
                          }),
                          o('action', 'connect_qrconnect_fastLogin_succ', 1);
                        break;
                      case 10050:
                        console.log('拒绝登录'),
                          A(),
                          $('#quick_login_fail_toast').fadeIn(300, function () {
                            var e = this;
                            setTimeout(function () {
                              $(e).fadeOut(300);
                            }, 1e3);
                          }),
                          o('action', 'connect_qrconnect_fastLogin_reject', 1);
                        break;
                      case 10046:
                        console.log('登录超时，authorize_uuid已过期'),
                          $('#quick_login_timeout_toast').fadeIn(300, function () {
                            var e = this;
                            setTimeout(function () {
                              $(e).fadeOut(300, function () {
                                window.location.reload();
                              });
                            }, 1e3);
                          }),
                          o('action', 'connect_qrconnect_fastLogin_fail', 1);
                        break;
                      default:
                        A(),
                          jQuery('.js_switchToFast_wrp').hide(),
                          o('action', 'connect_qrconnect_fastLogin_fail_switchto_normal', 1);
                    }
                  },
                  error: function (e) {
                    console.error('authorize req error', e),
                      A(),
                      jQuery('.js_switchToFast_wrp').hide(),
                      o('action', 'connect_qrconnect_fastLogin_fail_switchto_normal', 1);
                  },
                });
            }),
              $('.js_switchToFast').click(function () {
                p(), o('action', 'connect_qrconnect_switchto_fast', 1);
              }),
              $('.js_switchToNormal').click(function () {
                A(), o('action', 'connect_qrconnect_switchto_normal', 1);
              }),
              $('.js_refresh_qrcode').click(function () {
                o('action', 'connect_qrconnect_refresh_qrcode_btn', 1),
                  $('.js_refresh_qrcode').hide(),
                  $('.js_refresh_qrcode_loading').show(),
                  g().then(function () {
                    U = !1;
                  });
              }),
              $('.js_qrcode_img').click(function () {
                U &&
                  (o('action', 'connect_qrconnect_refresh_qrcode_img', 1),
                  g().then(function () {
                    U = !1;
                  })),
                  S && window.location.reload();
              }),
              $('.js_qrcode_img').on('error', function () {
                (S = !0),
                  $(this).attr(
                    'src',
                    'https://res.wx.qq.com/t/fed_upload/46a73b115c002aa8d49ae255da18c592/qrcode_expired.jpg',
                  );
              });
            var Y, L;
            w().then(function () {
              o('action', 'connect_qrconnect_ready'),
                setTimeout(s, 100),
                V &&
                  ((Y = Date.now()),
                  (L = new Date(Y)),
                  console.log('checklogin请求发起: ' + L.toString()),
                  u(z, function () {
                    console.log('fastLogin: ', N);
                    var e = Date.now(),
                      n = new Date(e),
                      t = e - Y;
                    console.log('请求结束: ' + n.toString()), console.log('请求时长: ' + t + ' ms');
                  }));
            });
          })();
        },
      ]);
    </script>
  </body>
</html>
